summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-12-18 21:41:56 +0100
committerAleksander Machniak <alec@alec.pl>2013-12-18 21:41:56 +0100
commitc562a316817091b80ac9c7d3efa31067850b03e6 (patch)
treee610a1c7b61413cdc3f82ae48128598760e2c370 /bin
parent538e64c572220bba43960a3073468c0ce3dc5f4c (diff)
Improved minified files handling, added css minification (#1486988)
Diffstat (limited to 'bin')
-rwxr-xr-xbin/cssshrink.sh62
-rwxr-xr-xbin/jsshrink.sh36
-rwxr-xr-xbin/jsunshrink.sh14
3 files changed, 84 insertions, 28 deletions
diff --git a/bin/cssshrink.sh b/bin/cssshrink.sh
new file mode 100755
index 000000000..604a0467c
--- /dev/null
+++ b/bin/cssshrink.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+PWD=`dirname "$0"`
+JAR_DIR='/tmp'
+VERSION='2.4.8'
+COMPILER_URL="https://github.com/yui/yuicompressor/releases/download/v${VERSION}/yuicompressor-${VERSION}.zip"
+
+do_shrink() {
+ rm -f "$2"
+ java -jar $JAR_DIR/yuicompressor.jar -v -o "$2" "$1"
+}
+
+if [ ! -w "$JAR_DIR" ]; then
+ JAR_DIR=$PWD
+fi
+
+if java -version >/dev/null 2>&1; then
+ :
+else
+ echo "Java not found. Please ensure that the 'java' program is in your PATH."
+ exit 1
+fi
+
+if [ ! -r "$JAR_DIR/yuicompressor.jar" ]; then
+ if which wget >/dev/null 2>&1 && which unzip >/dev/null 2>&1; then
+ wget "$COMPILER_URL" -O "/tmp/$$.zip"
+ elif which curl >/dev/null 2>&1 && which unzip >/dev/null 2>&1; then
+ curl "$COMPILER_URL" -o "/tmp/$$.zip"
+ else
+ echo "Please download $COMPILER_URL and extract compiler.jar to $JAR_DIR/."
+ exit 1
+ fi
+ (cd $JAR_DIR && unzip "/tmp/$$.zip" && mv "yuicompressor-${VERSION}.jar" "yuicompressor.jar")
+ rm -f "/tmp/$$.zip"
+fi
+
+# compress single file from argument
+if [ $# -gt 0 ]; then
+ CSS_FILE="$1"
+
+ echo "Shrinking $CSS_FILE"
+ minfile=`echo $CSS_FILE | sed -e 's/\.css$/\.min\.css/'`
+ do_shrink "$CSS_FILE" "$minfile"
+ exit
+fi
+
+DIRS="$PWD/../skins/* $PWD/../plugins/* $PWD/../plugins/*/skins/*"
+# default: compress application scripts
+for dir in $DIRS; do
+ for file in $dir/*.css; do
+ echo "$file" | grep -e '.min.css$' >/dev/null
+ if [ $? -eq 0 ]; then
+ continue
+ fi
+ if [ ! -f "$file" ]; then
+ continue
+ fi
+
+ echo "Shrinking $file"
+ minfile=`echo $file | sed -e 's/\.css$/\.min\.css/'`
+ do_shrink "$file" "$minfile"
+ done
+done
diff --git a/bin/jsshrink.sh b/bin/jsshrink.sh
index b13d7b2c7..f7c7b22e9 100755
--- a/bin/jsshrink.sh
+++ b/bin/jsshrink.sh
@@ -1,7 +1,10 @@
#!/bin/sh
-JS_DIR=`dirname "$0"`/../program/js
+PWD=`dirname "$0"`
+JS_DIR="$PWD/../program/js"
JAR_DIR='/tmp'
LANG_IN='ECMASCRIPT3'
+# latest version requires Java 7, we'll use an older one
+#CLOSURE_COMPILER_URL='http://dl.google.com/closure-compiler/compiler-latest.zip'
CLOSURE_COMPILER_URL='http://dl.google.com/closure-compiler/compiler-20131014.zip'
do_shrink() {
@@ -15,7 +18,7 @@ if [ ! -d "$JS_DIR" ]; then
fi
if [ ! -w "$JAR_DIR" ]; then
- JAR_DIR=`dirname "$0"`
+ JAR_DIR=$PWD
fi
if java -version >/dev/null 2>&1; then
@@ -47,21 +50,26 @@ if [ $# -gt 0 ]; then
LANG_IN="$2"
fi
- if [ ! -r "${JS_FILE}.src" ]; then
- mv "$JS_FILE" "${JS_FILE}.src"
- fi
echo "Shrinking $JS_FILE"
- do_shrink "${JS_FILE}.src" "$JS_FILE" "$LANG_IN"
+ minfile=`echo $JS_FILE | sed -e 's/\.js$/\.min\.js/'`
+ do_shrink "$JS_FILE" "$minfile" "$LANG_IN"
exit
fi
+DIRS="$PWD/../program/js $PWD/../skins/* $PWD/../plugins/* $PWD/../plugins/*/skins/*"
# default: compress application scripts
-for fn in app common googiespell list treelist; do
- if [ -r "$JS_DIR/${fn}.js.src" ]; then
- echo "$JS_DIR/${fn}.js.src already exists, not overwriting"
- else
- mv "$JS_DIR/${fn}.js" "$JS_DIR/${fn}.js.src"
- fi
- echo "Shrinking $JS_DIR/${fn}.js"
- do_shrink "$JS_DIR/${fn}.js.src" "$JS_DIR/${fn}.js" "$LANG_IN"
+for dir in $DIRS; do
+ for file in $dir/*.js; do
+ echo "$file" | grep -e '.min.js$' >/dev/null
+ if [ $? -eq 0 ]; then
+ continue
+ fi
+ if [ ! -f "$file" ]; then
+ continue
+ fi
+
+ echo "Shrinking $file"
+ minfile=`echo $file | sed -e 's/\.js$/\.min\.js/'`
+ do_shrink "$file" "$minfile" "$LANG_IN"
+ done
done
diff --git a/bin/jsunshrink.sh b/bin/jsunshrink.sh
deleted file mode 100755
index ef1bb47a1..000000000
--- a/bin/jsunshrink.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-JS_DIR=`dirname "$0"`/../program/js
-
-if [ ! -d "$JS_DIR" ]; then
- echo "Directory $JS_DIR not found."
- exit 1
-fi
-
-for fn in app common googiespell list treelist; do
- if [ -r "$JS_DIR/${fn}.js.src" ]; then
- mv "$JS_DIR/${fn}.js.src" "$JS_DIR/${fn}.js"
- echo "Reverted $JS_DIR/${fn}.js"
- fi
-done