gnu-web-doc-update: New module.
[gnulib.git] / build-aux / gnu-web-doc-update
1 #!/bin/sh
2 # Run this after each non-alpha release, to update the web documentation at
3 # http://www.gnu.org/software/$pkg/manual/
4 # Requirements: everything required to bootstrap your package,
5 # plus these: git, cvs, cvsu, rsync, mktemp
6
7 version=$(cat .prev-version)
8 pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' Makefile)
9 tmp_branch=web-doc-$version-$$
10
11 cleanup()
12 {
13   __st=$?;
14   rm -rf "$tmp"
15   git checkout master
16   git branch -d $tmp_branch
17   exit $__st
18 }
19 trap cleanup 0
20 trap 'exit $?' 1 2 13 15
21
22 # We must build using sources for which --version reports the
23 # just-released version number, not some string like 7.6.18-20761.
24 # That version string propagates into all documentation.
25 git checkout -b $tmp_branch v$version
26 ./bootstrap && ./configure && make && make web-manual
27
28 tmp=$(mktemp -d --tmpdir=. web-doc-update.XXXXXX) || exit 1
29 ( cd $tmp \
30     && cvs -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
31 rsync -avP doc/manual/ $tmp/$pkg/manual
32
33 (
34   cd $tmp/$pkg/manual
35
36   # Add any new files:
37   cvsu --types='?'|sed s/..// | xargs --no-run-if-empty -- cvs add -ko
38
39   cvs ci -m $version
40 )