日向夏特殊応援部隊

俺様向けメモ

CSSTidyをCygwinから使う為のシェルスクリプト

CSSTidyとは

ググってくだしあ。。。
じゃあれなんで、簡単に説明すると、

  • CSSの圧縮してくれる
  • CSSの整形してくれる

って感じのコマンドラインツール。
多分みんな俺ルールみたいのでプロパティのソートとかしてるだろうけど、
もうそういうのは頭使わずPCに任せる方向でね。

使う前に

Cygwinでビルドできるかと試してみたんだけど、どうも無理っぽぃのでバイナリ版落としてきましょう。
当然ながらWindowsになってるんで、パスの変換が必要。

あと何故かこのツール、オプションにセミコロンが付く物があって余りにイケてない感があるので、そのところもちょっと直した。

ソース

#!/bin/sh

ARGS=""
CSSTIDY="/usr/local/bin/csstidy"

while 
  case $# in
      0)  false;;
      *)  true;;
  esac
do
    arg="$1"; 
    shift;
    case $arg in
        --allow_html_in_templates|--compress_colors|--compress_font-weight|--discard_invalid_properties|--lowercase_s|--preserve_css|--remove_bslash|--silent|--sort_properties|--sort_selectors|--timestamp|--merge_selectors|--case_properties|--optimise_shorthands|--template) 
            ARGS="$ARGS=$1"; shift
            ;;
        --remove_last_semicolon)
            ARGS="--remove_last_;=$1"; shift
            ;;
        --help)
            cat << EOF
Usage: csstidy input_filename [
 --allow_html_in_templates=[false|true] |
 --compress_colors=[true|false] |
 --compress_font-weight=[true|false] |
 --discard_invalid_properties=[false|true] |
 --lowercase_s=[false|true] |
 --preserve_css=[false|true] |
 --remove_bslash=[true|false] |
 --remove_last_semicolon=[false|true] |
 --silent=[false|true] |
 --sort_properties=[false|true] |
 --sort_selectors=[false|true] |
 --timestamp=[false|true] |
 --merge_selectors=[2|1|0] |
 --case_properties=[0|1|2] |
 --optimise_shorthands=[1|2|0] |
 --template=[default|filename|low|high|highest] |
 --help | 
 output_filename ]
EOF
            exit 0;
            ;;
        *)
            ARGS="$ARGS "`cygpath -w $arg`
            ;;
    esac
done

$CSSTIDY $ARGS

バイナリを /usr/local/bin/csstidy.exe として保存してある物と仮定。
んでこのシェルスクリプトを/usr/local/binよりも優先度の高い所にぶち込んでおけば多分OKだと思われます。

Cygwin使いはcygpathは知っといた方がいいです。