summaryrefslogtreecommitdiffstats
path: root/scripts/mkwebpage
blob: 133263dc7dc5f85efeb3e58facb3734d09af4e33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/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.
    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
			}
			/^<body>$/ {
			r $src/body-tag.html.inc
			d
			}
			/@UPDATED@/c\\
Updated: $updated \\
<hr>
			/@INSERT_BUGLIST_HERE@/ {
			r $src/BUGS
			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 <<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 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
    fix_it $pgm.tmp $pgm.new
    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