#!/bin/sh # Make a snapshot of the CVS head revision for the gnupg webpages # and put them into the FTP directory (so that the mirrors w/o rsync # can access them set -e cd $HOME/pub extract_date () { # This strange construct is to speed up things. Grouping a "s" and a "q" # does not work. Anyway we should use awk instead. # Have to quote the I from $Id so that CVS does not expand it sed '/^.*\$[I]d:.*\$.*$/q' $1 | sed -n 's!^.*\$[I]d: [^ ]\+ [^ ]\+ \([0-9]*\)/\([0-9]*\)/\([0-9]*\) [^ ]\+ \([^ ]\+\).*$!\1-\2-\3 \4!p' } # We have to edit most files sed_it () { src=$1 dst=$2 for srcdir in `find $src -type d -print` ; do dstdir=`echo "$srcdir" | sed "s/^$src/$dst/g"` mkdir $dstdir || true for sf in `find $srcdir -type f -maxdepth 1 -print`; do updated=`extract_date $sf` df="$dstdir/`basename $sf`" case "$df" in *.html) sed "/@FOOTER@/ { r $src/footer.html.inc d } /^$/ { r $src/body-tag.html.inc d } /@UPDATED@/c\\ Updated: $updated \\
/@INSERT_BUGLIST_HERE@/ { r $src/BUGS d } /@HOSTEDBY@/ { r $src/hostedby.html.inc d } " $sf > $df ;; *.html.inc | *~ | *.tmp | */BUGS ) : ;; *) cat $sf > $df ;; esac done done } do_export () { pgm=$1 mod=$2 rm -rf $pgm.tmp 2>/dev/null || true rm -rf $pgm.new || true rm -rf $pgm.old || true cvs -Q export -r HEAD -d $pgm.tmp $mod cat <$pgm.tmp/NEWS [ This is a snapshot of the NEWS file from the CVS head revision. You will find the NEWS for the latest revision below the line "Noteworthy changes in version 0.x.y". (wk $(date +%Y-%m-%d)) ] EOF cvs -Q checkout -p gnupg/NEWS >>$pgm.tmp/NEWS cvs -Q checkout -p gnupg/BUGS | sed '1,/^~~~~~~~~~~~/ d' > $pgm.tmp/BUGS echo "(List generated from CVS: " $(date +%Y-%m-%d) ")" >> $pgm.tmp/BUGS sed_it $pgm.tmp $pgm.new rm -rf $pgm.tmp || true ln -sf gnupg.html $pgm.new/index.html rm -rf $pgm.old || true [ -d $pgm ] && mv $pgm $pgm.old if ! mv $pgm.new $pgm ; then echo "rename failed - restoring" >&2 mv $pgm.old $pgm exit 1 fi rm -rf $pgm.old || true } do_export gnupg-www gnupg-www cd gnupg-www tar czf /home/ftp/pub/gcrypt/old/webpages.tmp * mv /home/ftp/pub/gcrypt/old/webpages.tmp /home/ftp/pub/gcrypt/old/webpages.tar.gz exit 0