Aleksander Machniak
2015-11-17 818b78a89381be2f4de55c4f6a189da9379a1a3a
commit | author | age
bc9c02 1 #!/bin/sh
c562a3 2 PWD=`dirname "$0"`
AM 3 JS_DIR="$PWD/../program/js"
54f1af 4 JAR_DIR='/tmp'
55ee25 5 LANG_IN='ECMASCRIPT3'
c562a3 6 # latest version requires Java 7, we'll use an older one
AM 7 #CLOSURE_COMPILER_URL='http://dl.google.com/closure-compiler/compiler-latest.zip'
d5c381 8 CLOSURE_COMPILER_URL='http://dl.google.com/closure-compiler/compiler-20131014.zip'
bc9c02 9
T 10 do_shrink() {
11     rm -f "$2"
96dee9 12     # copy the first comment block with license information for LibreJS
TB 13     grep -q '@lic' $1 && sed -n '/\/\*/,/\*\// { p; /\*\//q; }' $1 > $2
14     java -jar $JAR_DIR/compiler.jar --compilation_level=SIMPLE_OPTIMIZATIONS --js="$1" --language_in="$3" >> $2
bc9c02 15 }
T 16
17 if [ ! -d "$JS_DIR" ]; then
18     echo "Directory $JS_DIR not found."
19     exit 1
54f1af 20 fi
T 21
22 if [ ! -w "$JAR_DIR" ]; then
c562a3 23     JAR_DIR=$PWD
bc9c02 24 fi
T 25
26 if java -version >/dev/null 2>&1; then
27     :
28 else
29     echo "Java not found. Please ensure that the 'java' program is in your PATH."
30     exit 1
31 fi
32
54f1af 33 if [ ! -r "$JAR_DIR/compiler.jar" ]; then
bc9c02 34     if which wget >/dev/null 2>&1 && which unzip >/dev/null 2>&1; then
T 35         wget "$CLOSURE_COMPILER_URL" -O "/tmp/$$.zip"
36     elif which curl >/dev/null 2>&1 && which unzip >/dev/null 2>&1; then
37         curl "$CLOSURE_COMPILER_URL" -o "/tmp/$$.zip"
38     else
54f1af 39         echo "Please download $CLOSURE_COMPILER_URL and extract compiler.jar to $JAR_DIR/."
bc9c02 40         exit 1
T 41     fi
54f1af 42     (cd $JAR_DIR && unzip "/tmp/$$.zip" "compiler.jar")
bc9c02 43     rm -f "/tmp/$$.zip"
T 44 fi
45
55ee25 46 # compress single file from argument
TB 47 if [ $# -gt 0 ]; then
48     JS_DIR=`dirname "$1"`
49     JS_FILE="$1"
50
51     if [ $# -gt 1 ]; then
52         LANG_IN="$2"
53     fi
54
55     echo "Shrinking $JS_FILE"
c562a3 56     minfile=`echo $JS_FILE | sed -e 's/\.js$/\.min\.js/'`
AM 57     do_shrink "$JS_FILE" "$minfile" "$LANG_IN"
55ee25 58     exit
TB 59 fi
60
c562a3 61 DIRS="$PWD/../program/js $PWD/../skins/* $PWD/../plugins/* $PWD/../plugins/*/skins/*"
55ee25 62 # default: compress application scripts
c562a3 63 for dir in $DIRS; do
AM 64     for file in $dir/*.js; do
65         echo "$file" | grep -e '.min.js$' >/dev/null
66         if [ $? -eq 0 ]; then
67             continue
68         fi
69         if [ ! -f "$file" ]; then
70             continue
71         fi
72
73         echo "Shrinking $file"
74         minfile=`echo $file | sed -e 's/\.js$/\.min\.js/'`
75         do_shrink "$file" "$minfile" "$LANG_IN"
76     done
bc9c02 77 done