diff options
Diffstat (limited to '')
-rwxr-xr-x | scripts/mkwebpage | 121 |
1 files changed, 91 insertions, 30 deletions
diff --git a/scripts/mkwebpage b/scripts/mkwebpage index eba90d490..b39feb176 100755 --- a/scripts/mkwebpage +++ b/scripts/mkwebpage @@ -1,44 +1,105 @@ #!/bin/sh # Make a snapshot of the CVS head revision for the gnupg webpages + set -e -myhome="$HOME/pub" -pgm="gnupg-www" -mod="gnupg-www" -MKWEBSITE=$HOME/bin/mkwebsite +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 -cd $myhome + 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 + } + /^<body>$/ { + r $src/body-tag.html.inc + d + } + /@UPDATED@/c\\ +Updated: $updated \\ +<hr> + /@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 +} -rm -rf $pgm.tmp 2>/dev/null || true -rm -rf $pgm.new || true -mkdir $pgm.new || true -rm -rf $pgm.old || true -cvs -Q export -r HEAD -d $pgm.tmp $mod -cat <<EOF >$pgm.tmp/en/NEWS + +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 <<EOF >$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 1.x.y". + "Noteworthy changes in version 0.x.y". (wk $(date +%Y-%m-%d)) ] EOF -cvs -Q checkout -p gnupg/NEWS >>$pgm.tmp/en/NEWS -cvs -Q checkout -p gnupg/BUGS | sed '1,/^~~~~~~~~~~~/ d' > $pgm.tmp/en/include-file-1.tmp -echo "(List generated from CVS: " $(date +%Y-%m-%d) ")" >> $pgm.tmp/en/include-file-1.tmp -cd $pgm.tmp -$MKWEBSITE --cvs --use-this-dir $myhome/$pgm.new -cd $myhome -cp -a gph $pgm.new/ || true - -rm -rf $pgm.tmp || true - -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 + 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 |