08 Dec 2012, 10:08

watchdog(watchmedo)でrst定期監視してsphinxビルド。

今週は、1週間かけて、shinixサイトを立ち上げた。
シェルスクリプトでサーバ公開までを自動化した。
シェルスクリプトがバクっていて、rm -rfでsphinxサイトを完全削除してしまった。

うわ~~~~~ w(◎o◎)w

sphinxでrstファイルを作成したあとに、自動ビルドが実行できたら便利だなと思った。
というわけで、(なんか前置きとつながってないけど)自動ビルドを調べてみた。

2つの方法があるっぽい

  • omake
  • watchdog

今回は、watchdogを試してみた。

watchdogでなにができる?

watchdogとはpythonモジュールの一つ。
この中に含まれる、watchmedoコマンドを使うことで、
ファイルの更新があったときにコマンドを実行できる。

環境

  • Sphinx 1.1.3
  • phthon 2.6
  • Windows 7 64bit

watchdogのインストール

pythonとpython setuptoolはインストールされていることが前提。
(なければこのページを参考にして、インストール)
インストールはコマンドプロンプトからeasy_installを実行する。

easy_install watchdog

watchdogの使い方

watchdogのコマンド watchmodeを利用して更新を監視するには以下のコマンドを叩く。

watchmedo shell-command --patterns="*.rst" --recursive --wait --command="make html"

これで、rstファイルを編集すると、watchmedoコマンドが再帰的に変更されたファイルを検索して、変更を検出したら “make htm”を実行する。

watchmedoコマンドオプション

 

コマンド 説明
-h, –help ヘルプ表示
-c COMMAND,

–command COMMAND
実行したいコマンド
-p PATTERNS,

–pattern PATTERNS,

–patterns PATTERNS

監視したい拡張子を指定
-i IGNORE_PATTERNS,

–ignore-pattern IGNORE_PATTERNS

–ignore-patterns IGNORE_PATTERNS

無視する拡張子
-D,

–ignore-directories
無視するディレクトリ
-R, –recursive 再帰的に監視
–interval TIMEOUT

–timeout TIMEOUT
タイムアウト時間指定
-w, –wait 複数実行禁止
          <p>
            &#160;
          </p>

          <h4>
            参考サイト
          </h4>

          <ul>
            <li>
              <a href="http://tell-k.hatenablog.com/entry/2012/01/04/022229">omakeもmakeも使わずに、Sphinxドキュメントの継続的ビルド &#8211; Study08.net 対シンバシ殲滅用人型機動兵器</a>
            </li>
            <li>
              <a href="http://d.hatena.ne.jp/nullpobug/20120331/1333125058">watchdogモジュールのwatchmedoコマンドが便利</a>
            </li>
          </ul>