静的ファイルの縮小と圧縮

mavenプラグインを使おうかと思ってたけど、
・ちょっとした修正でもビルドが必要になる
mavenの標準出力が(個人的に)いまいちわかりにくいので、
 失敗したとき発見しにくい
・pomに外部のリポジトリを書きたくない
とか、いろいろ思って、
mavenのビルドとは切り分けることにした。

で、
縮小にはY!のyuicompressorがメジャーっぽいので使ってみることに。
http://developer.yahoo.com/yui/compressor/
javaの動作環境と上記で入手できるjarさえあればおk。
以下、$target_dir以下の*.$typeを縮小するスクリプト書いてみた。

#!/bin/sh

target_dir=$1
type=$2
yuicompressor=/usr/local/yuicompressor/build/yuicompressor-2.4.2.jar
java_command=/usr/local/java/bin/java

case $type in
    "css")
        option=' --type css --charset UTF-8'
        ;;
    "js")
        option=' --type js --charset UTF-8'
        ;;
    *)
        echo "css | js"
        exit 1
        ;;
esac

file_list=`find $target_dir -name *.$type`

for file in $file_list
do
  $java_command -jar $yuicompressor -v $option $file -o $file
done

同じ要領で、こっちは圧縮するやつー。

#!/bin/sh

target_dir=$1
type=$2

gzip_command=/bin/gzip

file_list=`find $target_dir -name *.$type`

for file in $file_list
do
  $gzip_command -9 -c $file > $file.gz
  touch -r $file $file.gz
done

これを
デプロイ時にcss、jsディレクトリに対して
実行するようにしてみた。

今、
実際にapache配下においてみて
gzip毎に正しいファイルを返そうとしてるけど、
ちょっと迷走しすぎてるので、
また今度やる(´-ω-`)