Automatically updating websites from SVN

Ross Golder made a new script for auto-updating websites from SVN. I've
enhanced it a little. Below describes partly how the script works,
status of converting websites to build from SVN, etc.

How the setup works:
1. The website module requires a post-commit hook that triggers a
timestamp to be updated
 - This is done using procmail and $HOME/bin/ under
   gnomecvs (on window)
 - See /svn/gnomeweb-wml/hooks/post-commit on socket
2. From cron, the following runs every 15 minutes:
   $HOME/bin/ -c $HOME/etc/website-triggers
  - $HOME/etc/website-triggers contains the known SVN modules
  - $HOME/bin/ is the script that does all the work
3. $HOME/etc/website-triggers
  - a .ini-style textfile containing information about the SVN modules
  - things like URL, where the module will be checked out to, who to
    mail when there are errors, etc
4. $HOME/bin/
  - Uses the python24 module installed on window (instead of the
    standard 2.2)
  - Uses the website-triggers file to determine where to checkout a
    module to (or update it)
  - Assumes new modules can be checked out using the URL:$MODULE/trunk
  - Run the hook script $HOME/hooks/$MODULE (if it exists)
  - If the hook script fails somehow (non-zero exitcode), the owner
    will be informed via email (usually gnome-web-list gnome org)
5. Hook scripts
  - These start with as working directory the checkout directory of the

Quick howto add another website:
1. Change the modules's post-commit hook (see gnomeweb-wml post-commit
2. Fill in $HOME/etc/website-triggers
3. Add a hook script if needed as $HOME/hooks/$MODULE
4. Setup apache config


I do not want one module touching any other module. Currently some
modules install things in and I'd
rather make them install the stuff in /usr/local/www/$MODULE and use
aliases for and

Hook scripts *currently* know the location of the website directory
(e.g. /usr/local/www/gnomeweb-wml). I'd rather define this in
$HOME/etc/website-triggers and make it available as a environment
variable. This to have all the configuration in one place. I'm planning
to do this later.

There is a lot of cruft in the current setup. Things that aren't hosted
anymore. Hook scripts that depend on files that aren't available in the
module, etc. I plan to clean this up later.

Python 2.2 annoyed me too much. I've installed the python24 rpm and
using that now ($HOME/bin/ has #!/usr/bin/python24).

Websites that should build: (gw-web module) (and 2004, 2003) (memprof module)

There could be modules I've missed.

wallpaper-web module: doesn't exist
gnome-user-docs: relies on non-existing files + tries to change directly
gnome-devel-docs: relies on non-existing files + tries to change + directly


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]