とりあえずのGuard::Shell

を見るといろいろ増えているGuardたち。
だがその中にもまだ用途に合うGuardがないとき、またはあるけどイマイチ気に入らないとき。
そんな時に汎用的に使えるのがGuard::Shell。

これはファイルが変更されたら任意のシェルコマンドを実行するというもの。

guard init shellでGuardfileに追記される内容を見てみると

guard 'shell' do
  watch('(.*).txt') {|m| `tail #{m[0]}` }
end

Rubyで外部コマンド叩いてるだけと言うなげっぱなしの姿勢がすばらしい。
でも便利。

ちょっと前Sphinxを使っていたときは以下のようなGuardfileを作って使っていた。

guard 'shell' do
  watch(%r{^.+\.rst}){|m| `make html >/dev/null`}
end

これにlivereload絡めて使うと編集内容がすぐにチェックできて快適だった。
まあReSTになじめなくてSphinxはやめちゃったんですけどね。