#!/bin/rc # # This script is very slow. # Hence the option to use find's -newer. # A file can be created before stagit runs, # and this script will only modify files created after. # # stagit will not modify files in the commit/ dir once created # It does however recreate everything at HEAD. # This isn't ideal. # # Most of the time taken in this script is most likely NOT cpu time. # It may be a good idea to run the main loop portion of this script in parallel. wwwdir = /var/www/htdocs/src.hhvn.uk newer = $1 cd $wwwdir if (!~ $newer ()) { fargs = (-newer $1) } fn breadcrumb { printf %s '

' www/generate/breadcrumb $* | sed 's~&~\\\\\&~g' printf %s '

' } files = `$nl{find . $fargs -type f -name '*.html'} estatus = 0 for (f in $files) { printf %s 'BREADCRUMB ' ^ $f ^ '... ' breadcrumb = `''{breadcrumb $f hhvn.uk src} awk -v breadcrumb=$breadcrumb '{ sub(/

.*<\/h1>/, breadcrumb); sub(/Repositories<\/span>/, breadcrumb) }1' < $f > $f.awk if (~ $status 0) { echo success mv $f.awk $f } else { rm $f.awk estatus = $status } }