-
Notifications
You must be signed in to change notification settings - Fork 790
/
Copy pathuberjar
executable file
·61 lines (47 loc) · 2.09 KB
/
uberjar
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
#!/usr/bin/env bash
# This script must be run within the ClojureScript top-level project
# directory.
set -e
if [[ -z "$CLJS_SCRIPT_QUIET" ]]; then
set -x
fi
rm -f resources/brepl_client.js
# The command `git describe --match v0.0` will return a string like
#
# v0.0-856-g329708b
#
# where 856 is the number of commits since the v0.0 tag. It will always
# find the v0.0 tag and will always return the total number of commits (even
# if the tag is v0.0.1).
MAJOR="1"
MINOR="10"
REVISION=`git --no-replace-objects describe --match v$MAJOR.$MINOR`
# Extract the version number from the string.
REVISION_REGEX="v[0-9]*\.[0-9]*-([0-9]*)-.*"
if [[ $REVISION =~ $REVISION_REGEX ]]
then
REVISION="${BASH_REMATCH[1]}"
fi
COMP_FILE=`mktemp /tmp/compiler.clj.XXXXXXXXXXX`
sed -e 's/^.def ^:dynamic \*clojurescript-version\*.*$/(def ^:dynamic *clojurescript-version* {:major '"$MAJOR"', :minor '"$MINOR"', :qualifier '"$REVISION"'})/' src/main/clojure/cljs/util.cljc > $COMP_FILE
mv $COMP_FILE src/main/clojure/cljs/util.cljc
CLJS_FILE=`mktemp /tmp/core.cljs.XXXXXXXXXXX`
sed -e 's/^.def \*clojurescript-version\*.*$/(def *clojurescript-version* '\""$MAJOR.$MINOR.$REVISION"\"')/' src/main/cljs/cljs/core.cljs > $CLJS_FILE
mv $CLJS_FILE src/main/cljs/cljs/core.cljs
rm -f src/main/cljs/cljs/core.aot.js
rm -f src/main/cljs/cljs/core.aot.js.map
rm -f src/main/cljs/cljs/core.cljs.cache.aot.edn
rm -f src/main/cljs/cljs/core.cljs.cache.aot.json
./script/aot_core
AOT_FILE=`mktemp /tmp/core.aot.js.XXXXXXXXXXX`
sed -e "s/0.0.0000/$MAJOR.$MINOR.$REVISION/" src/main/cljs/cljs/core.aot.js > $AOT_FILE
mv $AOT_FILE src/main/cljs/cljs/core.aot.js
AOT_CACHE_FILE=`mktemp /tmp/core.cljs.cache.aot.edn.XXXXXXXXXXX`
sed -e "s/0.0.0000/$MAJOR.$MINOR-$REVISION/" src/main/cljs/cljs/core.cljs.cache.aot.edn > $AOT_CACHE_FILE
mv $AOT_CACHE_FILE src/main/cljs/cljs/core.cljs.cache.aot.edn
lein uberjar
mv target/clojurescript-0.0-SNAPSHOT-standalone.jar target/cljs.jar
rm -f src/main/cljs/cljs/core.aot.js
rm -f src/main/cljs/cljs/core.aot.js.map
rm -f src/main/cljs/cljs/core.cljs.cache.aot.edn
rm -f src/main/cljs/cljs/core.cljs.cache.aot.json