#!/bin/sh
# Make a snapshot of the CVS head revision for the gnupg webpages
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