summaryrefslogtreecommitdiff
path: root/gnu-web-doc-update
blob: 41e989add06de3acbd6683c839638ef3cdb35953 (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
#!/bin/sh
# Run this after each non-alpha release, to update the web documentation at
# http://www.gnu.org/software/$pkg/manual/
# Requirements: everything required to bootstrap your package,
# plus these: git, cvs, cvsu, rsync, mktemp

version=$(cat .prev-version)
pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' Makefile)
tmp_branch=web-doc-$version-$$

cleanup()
{
  __st=$?;
  rm -rf "$tmp"
  git checkout master
  git branch -d $tmp_branch
  exit $__st
}
trap cleanup 0
trap 'exit $?' 1 2 13 15

# We must build using sources for which --version reports the
# just-released version number, not some string like 7.6.18-20761.
# That version string propagates into all documentation.
git checkout -b $tmp_branch v$version
./bootstrap && ./configure && make && make web-manual

tmp=$(mktemp -d --tmpdir=. web-doc-update.XXXXXX) || exit 1
( cd $tmp \
    && cvs -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
rsync -avP doc/manual/ $tmp/$pkg/manual

(
  cd $tmp/$pkg/manual

  # Add any new files:
  cvsu --types='?'|sed s/..// | xargs --no-run-if-empty -- cvs add -ko

  cvs ci -m $version
)