scripts/shrinksafe.sh
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 2937 2252dc0be5db
permissions -rwxr-xr-x
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2873
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     1
#!/bin/bash
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     2
#Requires java installed
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     3
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     4
echo "*** SHRINKSAFE: running shrinksafe ***"
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     5
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     6
SHRINKSAFE="../thirdparty/shrinksafe/shrinksafe.jar"
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     7
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     8
echo "*** SHRINKSAFE: minifying javascript files ***"
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     9
let SOURCE_FILE_SIZES=0
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    10
let DEST_FILE_SIZES=0
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    11
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    12
shrinksafe () {
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    13
  SOURCE_DIR=$1
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    14
  for dir in $(find $SOURCE_DIR -type d); do
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    15
    for i in $(find $dir/*.js -type f); do
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    16
      echo "SHRINKSAFE: Processing $i"
2937
2252dc0be5db Shrinksafe script fixed to workaround Linux vs BSD stat packages.
Mario Ferraro <fadinlight@gmail.com>
parents: 2873
diff changeset
    17
      CURRENT_SOURCE_FILE_SIZE=$(ls -l "$i" | awk '{print $5}')
2873
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    18
      let SOURCE_FILE_SIZES=$SOURCE_FILE_SIZES+$CURRENT_SOURCE_FILE_SIZE
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    19
      mv $i $i.old.js
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    20
      java -jar $SHRINKSAFE $i.old.js > $i
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    21
      if [ "$?" == "1" ]; then
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    22
        echo "*** ATTENTION ***: $i minimization failed, copying plain file"
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    23
        cp $i.old.js $i
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    24
      fi
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    25
      rm $i.old.js
2937
2252dc0be5db Shrinksafe script fixed to workaround Linux vs BSD stat packages.
Mario Ferraro <fadinlight@gmail.com>
parents: 2873
diff changeset
    26
      CURRENT_DEST_FILE_SIZE=$(ls -l "$i" | awk '{print $5}')
2873
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    27
      let DEST_FILE_SIZES=$DEST_FILE_SIZES+$CURRENT_DEST_FILE_SIZE
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    28
    done
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    29
  done
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    30
}
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    31
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    32
for DEST_DIR in "$@"; do
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    33
  shrinksafe $DEST_DIR
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    34
done
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    35
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    36
let COMPRESSION_RATE=$DEST_FILE_SIZES*100/$SOURCE_FILE_SIZES
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    37
echo "*** SHRINKSAFE: Source file sizes: $SOURCE_FILE_SIZES, Dest file sizes: $DEST_FILE_SIZES"
4fb030d43575 Scripts to run Shrinksafe during build.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    38
echo "*** SHRINKSAFE: Congratulations! You achieved $COMPRESSION_RATE% compression rate!"