Mercurial のリポジトリ更新時に Sphinx をビルドする

複数人でドキュメント書いたり修正する場合なんかに、MercurialSphinx のドキュメントソースを管理しているわけですが、毎度毎度、 作業領域を更新してから make html するのが面倒なわけです。


で、例によって id:nullpobug が「mercurialhook 使えば楽だよ」と言ってたので、 早速マネしてみました。

フックって?

Mercurialリポジトリで発生するイベントを通知して、指定したアクションを 叩いてくれるトリガです。

フックの一覧
  • changegroup
  • commit
  • incoming
  • outcoming
  • prechangegroup
  • precommit
  • preoutgoing
  • pretag
  • pretxnchangegroup
  • pretxncommit
  • preupdate
  • tag
  • update


今回の場合は、リポジトリ更新完了後に処理を走らせたいので update を使います。

ビルドスクリプトを用意

まずはフックされた際に走らせる Sphinx のドキュメントビルドスクリプト sphinx_build.sh を用意。 実行権限もつけときましょうか。

#!/bin/sh
DOC_HOME=/path/to/doc
cd $DOC_HOME
make html

フックの設定

次に Mercurialリポジトリ直下 .hg にある hgrc にフックの設定を追記。

[hooks]
update.sphinx = /path/to/sphinx_build.sh

おわり

こんだけ。

$ hg pull
$ hg update

で更新が完了するとビルドスクリプトが走ってくれますよっと。

これも気になる

こんどやってみよっと

映像奮闘記: OMakeでSphinxを自動継続ビルドしてみよう