scripts/shrinksafe.sh
author Pawel Solyga <Pawel.Solyga@gmail.com>
Mon, 05 Oct 2009 19:09:58 +0200
changeset 3015 ad05c8063e37
parent 2937 2252dc0be5db
permissions -rwxr-xr-x
Add functions for CSV export of organizations and roles. Those CSV exports are used to create Google Code GSoC projects at the end of the program for students code submissions.
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!"