/ Published in: Bash
A custom compression script I use for auto compression and gzip compression of my css & files. Also allows for 'debug' mode (uncompressed). You simply include the core.css & core.js in your
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#!/bin/bash development=0 localAddress=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{print $2; exit 1}'` localAddress='your.localhost' coreCSSOutputFile='css/core.css' coreJSOutputFile='js/core.js' if [ $development == 1 ]; then cat > $coreJSOutputFile <<EOL document.write('<script src="/includes/js/mootools.js" type="text/javascript" charset="utf-8"></script>'); document.write('<script src="/includes/js/validator.js" type="text/javascript" charset="utf-8"></script>'); document.write('<script src="/includes/js/datepicker.js" type="text/javascript" charset="utf-8"></script>'); EOL cat > $coreCSSOutputFile <<EOL @import "lib/reset.css"; @import "lib/typography.css"; @import "lib/forms.css"; @import "lib/plugins/tabs.css"; @import "components/datepicker_dashboard.css"; @import "admin.css"; EOL # we dont want the server trying to serve the wrong data if [[ -f "$coreCSSOutputFile.gz" ]]; then rm "$coreCSSOutputFile.gz" fi if [[ -f "$coreJSOutputFile.gz" ]]; then rm "$coreJSOutputFile.gz" fi exit 0 fi tempFile=`mktemp -t webcompress.xxx` # Compress CSS coreCSSFiles=( 'css/lib/reset.css' 'css/lib/forms.css' 'css/lib/ie.css' 'css/lib/typography.css' 'css/screen.css' 'css/components/datepicker_dashboard.css' ) for file in ${coreCSSFiles[@]}; do # count /'s.. if we are father down in the directory replace ../../../ with ../ if [[ `echo "$file" | perl -ne 'while(/\//g){++$count}; print "$count\n"'` > 2 ]]; then cat $file | sed 's/\.\.\/\.\.\/\.\.\//..\/..\//g' >> $tempFile else cat $file >> $tempFile fi done cat $tempFile > /out.css cssoptimizer -lo $tempFile > $coreCSSOutputFile # Compress JS javascriptFiles=( js/mootools.js js/validator.js js/datepicker.js ) # clear the tmp file > $tempFile for file in ${javascriptFiles[@]}; do cat $file >> $tempFile done java -jar /usr/bin/yuicompressor.jar --type js "$tempFile" > "$coreJSOutputFile" # gzip compress! gzip -f "$coreJSOutputFile" gzip -f "$coreCSSOutputFile" exit 0