jump to navigation

Request for Nom-Nom August 13, 2008

Posted by Derek in technology, what "you do here".
Tags: ,

We’re still using shell scripts in a Fortune 200 company. Pure hackery. (This wordpress theme is not wide enough, but you get the idea…)

#  Shell script to make a backup of the previously compressed file if it exists,
#  execute the YUI-Compressor on the specified source file, and clean up the
#  backup directory so that it doesn't grow too large

trap huphandler  HUP
trap ''          QUIT
trap exithandler TERM INT

   print 'Received SIGHUP'

   print 'Received SIGTERM or SIGINT'
   exit 1

if [ $# -ne 3 ]; then
  echo 1>&2 "Usage: yuicompressor <source file-name> <source file-type> <output file-name>"
  echo "e.g. home.src.js js home.cmp.js"
  exit 1

if [ $1 == $3 ]; then
        echo "Error: Source filename and output filename cannot be the same."
        exit 1

#echo "Enter the source filename to compress and the type of file; e.g. newNWA.src.css css:"
if [[ -z $2 ]]; then
        echo "Please enter a file type, usually it's \"js\" or \"css\":"
        read file_type
#echo "Enter the output filename: e.g. newNWA.cmp.css"

if [[ -z $3 ]] ; then
        echo "output_file is null, I cannot compress"
# make a backup copy first
if [ -f $3 ]; then
        echo "Output file already exists, making a backup..."
        NOW=$(date +"%Y%m%d.%H-%M-%S")
        cp $3 /weblogs/backup/yuicompressor/$FILENAME
                chmod 775 /weblogs/backup/yuicompressor/$FILENAME
        echo "Output file backed up, now compressing $source_file..."
        echo "No existing output file found to backup. Starting compression of $source_file..."

#perform the compression
/usr/java14/bin/java -jar /opt/www/scripts/yuicompressor-2.3.6/build/yuicompressor-2.3.6.jar --type $2 $PWD/$1 -o $PW

#cleanup backup directory
echo "Checking to see if backup directory cleanup is needed..."
cd /weblogs/backup/yuicompressor/
files_in_dir=`ls $3.$USER.* | wc -l`
files_to_delete=`expr $files_in_dir - 3`
        if [ $files_to_delete -gt 0 ]; then
          echo "Cleaning up backup directory..."
          ls -t | tail -n $files_to_delete | xargs rm
          if [ $? -ne 0 ]; then
            echo .An error ocurred deleting the files.
            exit 1
            echo "$files_to_delete file(s) deleted."
          echo "No cleaning of backup directory needed."


1. Brent - August 13, 2008

/me hugs C#

2. Derek - August 13, 2008

Keep in mind this is not production code. It’s just an operational tool to make it easier to execute the command-line Java application.

But it’s still a shell script…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: