scripts/shrinksafe.sh
changeset 2878 cf4b80992451
parent 2873 4fb030d43575
child 2937 2252dc0be5db
equal deleted inserted replaced
2871:e440e94a874b 2878:cf4b80992451
       
     1 #!/bin/bash
       
     2 #Requires java installed
       
     3 
       
     4 echo "*** SHRINKSAFE: running shrinksafe ***"
       
     5 
       
     6 SHRINKSAFE="../thirdparty/shrinksafe/shrinksafe.jar"
       
     7 
       
     8 echo "*** SHRINKSAFE: minifying javascript files ***"
       
     9 let SOURCE_FILE_SIZES=0
       
    10 let DEST_FILE_SIZES=0
       
    11 
       
    12 shrinksafe () {
       
    13   SOURCE_DIR=$1
       
    14   for dir in $(find $SOURCE_DIR -type d); do
       
    15     for i in $(find $dir/*.js -type f); do
       
    16       echo "SHRINKSAFE: Processing $i"
       
    17       CURRENT_SOURCE_FILE_SIZE=$(stat -c%s "$i")
       
    18       let SOURCE_FILE_SIZES=$SOURCE_FILE_SIZES+$CURRENT_SOURCE_FILE_SIZE
       
    19       mv $i $i.old.js
       
    20       java -jar $SHRINKSAFE $i.old.js > $i
       
    21       if [ "$?" == "1" ]; then
       
    22         echo "*** ATTENTION ***: $i minimization failed, copying plain file"
       
    23         cp $i.old.js $i
       
    24       fi
       
    25       rm $i.old.js
       
    26       CURRENT_DEST_FILE_SIZE=$(stat -c%s "$i")
       
    27       let DEST_FILE_SIZES=$DEST_FILE_SIZES+$CURRENT_DEST_FILE_SIZE
       
    28     done
       
    29   done
       
    30 }
       
    31 
       
    32 for DEST_DIR in "$@"; do
       
    33   shrinksafe $DEST_DIR
       
    34 done
       
    35 
       
    36 let COMPRESSION_RATE=$DEST_FILE_SIZES*100/$SOURCE_FILE_SIZES
       
    37 echo "*** SHRINKSAFE: Source file sizes: $SOURCE_FILE_SIZES, Dest file sizes: $DEST_FILE_SIZES"
       
    38 echo "*** SHRINKSAFE: Congratulations! You achieved $COMPRESSION_RATE% compression rate!"