うまいぼうぶろぐ

linuxとhttpdとperlのメモ

inotifywatchでイベントを監視してコマンド実行する

sphinxでrstファイルを更新する度にmake htmlするのが面倒なので、inotifyでsourceディレクトリ(*.rst, conf.py 保存ディレクトリ)の更新を検知したら、make htmlするようにバックグラウンドで回しておく。

inotifywatchが入ってなかったらapt/yum でinotify-tools を入れる。

$ while inotifywatch -e modify ./source ; do make html; done

正確には、このコマンドだとrstの更新をしてなくてもmake htmlが走ってしまいます。sourceディレクトリの更新を監視しているので、(vimの設定によるが) vim foo.rst とファイルを開くと.foo.rst.swp が作成されて、ディレクトリに更新がかかってmake htmlが実行される。
ただ、この時点ではrstファイルは更新されてないのでmake htmlは"no targets are out of date."と言ってすぐ終了するし、自分の環境で動かすだけだしこれでいいや。