aboutsummaryrefslogtreecommitdiffstats
path: root/infrastructure/bin/makejar.sh
blob: c774fa6642b0ae0a9c7b7f2e7d5891467e9e68cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash -e

#  Copyright 2009 Google Inc.
#  
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#  
#       http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS-IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

if [ -z "$JAR" ]; then
    JAR=jar
else
    echo "using JAR $JAR..."
fi

cp ${MYSQL_CONNECTOR_JAR} lib/

source bin/compilecache.sh

if [ "$1" == "clearcache" ]; then
    echo "CLEARING BUILD CACHE"
    rm -rf buildcache
    shift;
fi

TMPSTORE=/tmp/ajbuild-tmpstore-`date +%s`

JARFILES=`echo $SCALA_HOME/lib/scala-library.jar lib/*.jar lib/manifest`
function genjar {
    echo "unzipping JARs..."
    pushd $1 >> /dev/null
    $JAR xf $SCALA_HOME/lib/scala-library.jar
    rm -rf META-INF
    for a in ../../lib/*.jar; do
	$JAR xf $a
	rm -rf META-INF/{MANIFEST.MF,NOTICE{,.txt},LICENSE{,.txt},INDEX.LIST,SUN_MICR.{RSA,SF},maven}
    done

    echo "making cached JAR...."
    $JAR -cfm appjet.jar ../../lib/manifest .
    mv appjet.jar /tmp/appjet.jar
    rm -rf *
    mv /tmp/appjet.jar ./

    popd >> /dev/null
}
cacheonfiles JAR "$JARFILES" genjar 1

echo "compiling..."
bin/comp.sh $@

pushd build >> /dev/null

echo "copying cached JAR..."
cp ../buildcache/JAR/appjet.jar ./

echo "making JAR..."
mv appjet.jar /tmp/appjet.jar
$JAR -uf /tmp/appjet.jar . #META-INF com javax org net uk v scala dojox
mv /tmp/appjet.jar ./

echo "cleaning up..."
rm -rf $TMPSTORE

popd >> /dev/null

echo "done."