CLIプログラム向けGruntプラグイン

grunt-blosxomのように、なんらかのCLIプログラムを叩くだけのGruntプラグインを書く場合、いわゆるGruntプラグイン的な設定にならないように書いた方がわかりやすいかなと思う。普通のプラグインのようにsrcfilesを使って設定するように書こうとすると、Gruntの作法にCLIプログラムの挙動を合わせるようにプラグインを書かなくてはならなくて面倒くさい。

CLIプログラムを叩くだけのようなGruntプラグインは、既に安定動作することが確認されているCLIプログラムを利用してタスクをでっち上げる時によく書かれる。汎用性やポータビリティが必要なら、改めてNode.jsを使ってちゃんと書き直す必要があるけれど、特定の環境で動かすだけならばそのCLIプログラムを最大限に利用してやった方が効率的だ。

こういったプラグインでGruntが良しなにしてくれるsrcfilesなどを使って入力ファイルを指定しようとすると、その良しなにしてくれた結果とCLIプログラムへの入力作法をすり合わせる必要がある。それよりもGruntタスクの--オプションを利用して、CLIプログラムにほぼそのまま渡せる形で入力ファイルを渡すと、Gruntが何もしないことを保証できるので面倒くさくない。実行時の環境変数や他のCLIオプションはタスクごとに固定できるのでoptionsを使うと良い。