/
build.sh
53 lines (42 loc) · 1.44 KB
/
build.sh
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
#!/bin/bash
ROOT_DIR="../"
SRC_DIR=${ROOT_DIR}"src/"
DIST_DIR=${ROOT_DIR}"dist/"
ALL_LIST=( ${SRC_DIR}"punycode.js" ${SRC_DIR}"uri.js" ${SRC_DIR}"schemes/http.js" ${SRC_DIR}"schemes/urn.js" )
ALL_FILE=${DIST_DIR}"uri.min.js"
EXTERNS_FILE=${SRC_DIR}"externs.js"
COMPILER_JAR=${ROOT_DIR}"bin/closure/compiler.jar"
COMPILE_OPTIONS="--jscomp_off nonStandardJsDocs --jscomp_warning checkTypes --jscomp_warning checkRegExp --jscomp_warning checkVars --jscomp_warning deprecated --jscomp_warning invalidCasts --jscomp_warning missingProperties --jscomp_warning undefinedVars --jscomp_warning unknownDefines --jscomp_warning visibility"
#
# Targets
#
function clean {
rm -r -f ${DIST_DIR}
}
function setup {
mkdir ${DIST_DIR}
}
function simple_compile {
local IN_ARGS=
local IN_LENGTH=${#ALL_LIST[@]}
for ((i=0;i<${IN_LENGTH};i++)); do
IN_ARGS=${IN_ARGS}"--js "${ALL_LIST[${i}]}" "
done
local OUT_FILE=${ALL_FILE}
java -jar ${COMPILER_JAR} ${IN_ARGS} --externs ${EXTERNS_FILE} --js_output_file ${OUT_FILE} --compilation_level SIMPLE_OPTIMIZATIONS ${COMPILE_OPTIONS}
}
function advanced_compile {
local IN_ARGS=
local IN_LENGTH=${#ALL_LIST[@]}
for ((i=0;i<${IN_LENGTH};i++)); do
IN_ARGS=${IN_ARGS}"--js "${ALL_LIST[${i}]}" "
done
local OUT_FILE=${ALL_FILE}
java -jar ${COMPILER_JAR} ${IN_ARGS} --externs ${EXTERNS_FILE} --js_output_file ${OUT_FILE} --compilation_level ADVANCED_OPTIMIZATIONS ${COMPILE_OPTIONS}
}
#
# Operations
#
clean
setup
advanced_compile