CSS & JS Packer

Name: pack-styles
Version: 1.0
Released: February 5th, 2011
Licence: Free to use without restriction.

Description

This script will minify all CSS and Javascript files in a specified directory that have the extension .in.css or .in.js, and will output them as .css or .js files.

Requires yui-compressor (install using sudo apt-get install yui-compressor).

For example: pack-styles public_html will minify all *.in.css and *.in.js files in the public_html directory.

Usage

Call pack-styles with an optional directory argument. If no directory argument is supplied, it will scan the current directory and its subdirectories.

Code

#!/bin/bash
echo "Processing Files"
 
fileNameList=$(find $1 -name "*.in.*s")
beforeSize=0
afterSize=0
 
# Convert to array
i=0;
for f in $fileNameList; do
  fileNames[$i]="$f"
  ((i++))
done
 
for inputFile in "${fileNames[@]}"
do
	outputFile=${inputFile/.in./.}
	beforeSize=$((beforeSize+$(stat -c%s "$inputFile")))
 
	echo "  o $inputFile"
	yui-compressor -o $outputFile $inputFile --charset utf-8
 
	afterSize=$((afterSize+$(stat -c%s "$outputFile")))
done
 
echo "Size Before: $beforeSize"
echo "Size After : $afterSize"