The best way to run ikiwiki in a [[Subversion]] post-commit hook is using
a wrapper, which can be generated using ikiwiki --gen-wrapper
.
First, set up the subversion checkout that ikiwiki will update and compile
into your wiki at each subversion commit. Run ikiwiki a few times by hand
to get a feel for it. Now, generate the wrapper by adding "--gen-wrapper"
to whatever command line you've been using to run ikiwiki. For example:
~/wiki-checkout> ikiwiki . ~/public_html/wiki
~/wiki-checkout> ikiwiki . ~/public_html/wiki --gen-wrapper
successfully generated ikiwiki-wrap
The generated wrapper is a C program that is designed to safely be made
suid if necessary. It's hardcoded to run ikiwiki with the settings
specified when you ran --gen-wrapper, and can only be used to update and
compile that one checkout into the specified html directory.
Now, put the wrapper somewhere convenient, and create a post-commit hook
script in your subversion repository for the wiki. All the post-commit
hook has to do is run ikiwiki-wrap (with no parameters).
Depending on your Subversion setup, the post-commit hook might end up
getting called by users who have write access to subversion, but not to
your wiki checkout and html directory. If so, you can safely make
ikiwiki-wrap suid to a user who can write there (not to root!). You might
want to read [[Security]] first.