Revision: 15612
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 11, 2009 22:13 by iloveitaly
Initial Code
#!/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
Initial URL
Initial Description
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 <head>
Initial Title
Compression Script for CSS & JS
Initial Tags
css, javascript, js, debug
Initial Language
Bash