CSS LintのCLI

npmのCSS Lintを使うようにしようかなと思って入れたけどCLIがなんかうまく動かない。動くようにちゃんと直すにも色々よくわからないので、CSSファイルを受け取ってチェックするだけのオレオレCLIを書いて使うことにした。

#!/usr/bin/env node

var fs = require('fs');
var cl = require('csslint');
var cssfile = process.argv.slice(2)[0];

var results = cl.CSSLint.verify(fs.readFileSync(cssfile, 'UTF-8'));

for (i = 0, l = results.messages.length; i < l; i++) {
  var m = results.messages[i];

  if (!m.rollup) {
    console.log([cssfile, m.line, m.col, m.message].join(':'));
  }
}

コマンドラインに渡された最初の引数をCSSファイルのパスとみなして、それを開いてチェックするだけ。出力はGNU Coding Standardsの4.4 Formatting Error Messagesに従ってコロン区切り。まとめメッセージ(font-sizeプロパティーの指定が多過ぎとか文句言う奴)は捨ててる。

グローバルにインストールされたcsslintモジュールを使う場合はNODE_PATH環境変数の設定も必要。そうでない場合は同じディレクトリにインストールすれば良い。