5944261d7e90dba79803085277c360d5ab9253f4
[gnupg.git] / scripts / mkwebpage
1 #!/bin/sh
2 # Make a snapshot of the CVS head revision for the gnupg webpages
3 # and put them into the FTP directory (so that the mirrors w/o rsync
4 # can access them
5
6
7 set -e
8
9 cd $HOME/pub
10
11 extract_date () {
12     # This strange construct is to speed up things.  Grouping a "s" and a "q"
13     # does not work. Anyway we should use awk instead.
14     sed '/^.*\$\[I\]d:.*\$.*$/q' $1 |
15     sed -n 's!^.*\$\[I\]d: [^ ]\+ [^ ]\+ \([0-9]*\)/\([0-9]*\)/\([0-9]*\) [^ ]\+ \([^ ]\+\).*$!\1-\2-\3 \4!p'
16 }
17
18 # We have to edit most files
19 sed_it () {
20     src=$1
21     dst=$2
22
23     for srcdir in `find $src -type d -print` ; do
24         dstdir=`echo "$srcdir" | sed "s/^$src/$dst/g"`
25         mkdir $dstdir || true
26         for sf in `find $srcdir -type f -maxdepth 1 -print`; do
27             updated=`extract_date $sf`
28             df="$dstdir/`basename $sf`"
29             case "$df" in
30                 *.html)
31                     sed "/@FOOTER@/ {
32                         r $src/footer.html.inc
33                         d
34                         }
35                         /^<body>$/ {
36                         r $src/body-tag.html.inc
37                         d
38                         }
39                         /@UPDATED@/c\\
40 Updated: $updated \\
41 <hr>
42                         /@INSERT_BUGLIST_HERE@/ {
43                         r $src/BUGS
44                         d
45                         }
46                      " $sf > $df
47                     ;;
48                 *.html.inc | *~ | *.tmp | */BUGS )
49                     :
50                     ;;
51                 *)
52                     cat $sf > $df
53                     ;;
54             esac
55         done
56     done
57 }
58
59
60 do_export () {
61     pgm=$1
62     mod=$2
63
64     rm -rf $pgm.tmp 2>/dev/null || true
65     rm -rf $pgm.new || true
66     rm -rf $pgm.old || true
67     cvs -Q export -r HEAD -d $pgm.tmp $mod
68     cat <<EOF >$pgm.tmp/NEWS
69 [ This is a snapshot of the NEWS file from the CVS head revision.
70   You will find the NEWS for the latest revision below the line
71   "Noteworthy changes in version 0.x.y".
72                                                      (wk $(date +%Y-%m-%d)) ]
73
74
75 EOF
76     cvs -Q checkout -p gnupg/NEWS >>$pgm.tmp/NEWS
77     cvs -Q checkout -p gnupg/BUGS | sed  '1,/^~~~~~~~~~~~/ d' > $pgm.tmp/BUGS
78     echo "(List generated from CVS: " $(date +%Y-%m-%d) ")"  >> $pgm.tmp/BUGS
79     sed_it $pgm.tmp $pgm.new
80     rm -rf $pgm.tmp || true
81
82     rm -rf $pgm.old || true
83     [ -d $pgm ] && mv $pgm $pgm.old
84     if ! mv $pgm.new $pgm ; then
85         echo "rename failed - restoring" >&2
86         mv $pgm.old $pgm
87         exit 1
88     fi
89     rm -rf $pgm.old || true
90 }
91
92
93 do_export gnupg-www gnupg-www
94
95 cd gnupg-www
96 tar czf /home/ftp/pub/gcrypt/old/webpages.tmp *
97 mv /home/ftp/pub/gcrypt/old/webpages.tmp /home/ftp/pub/gcrypt/old/webpages.tar.gz
98
99
100 exit 0
101