3 # This script is called from the post-update hook, and when
4 # the master branch is updated, run in $HOME/git-doc, like
8 $
cat >hooks
/post-update
11 *' refs/heads/master '*)
12 echo $HOME/git-doc
/dodoc.sh |
at now
15 exec git-update-server-info
16 $
chmod +x hooks
/post-update
20 # $HOME/git-doc is a clone of the git.git repository and
21 # has the master branch checkd out. We update the working
22 # tree and build pre-formatted documentation pages, install
23 # in doc-htmlpages and doc-manapges subdirectory here.
24 # These two are their own git repository, and when they are
25 # updated the updates are pushed back into their own branches
26 # in git.git repository.
28 ID
=`git-rev-parse --verify refs/heads/master` ||
exit $?
32 PUBLIC
=/pub
/software
/scm
/git
/docs
&&
34 DOCREPO
=`dirname "$0"` &&
35 test "$DOCREPO" != "" &&
36 cd "$DOCREPO" ||
exit $?
38 git pull
"$MASTERREPO" master
&&
39 git fetch
--tags "$MASTERREPO" ||
exit $?
40 test $
(git-rev-parse
--verify refs
/heads
/master
) == "$ID" &&
41 NID
=$
(git-describe
--abbrev=4 "$ID") &&
42 test '' != "$NID" ||
exit $?
44 # Set up subrepositories
45 test -d doc-htmlpages ||
(
46 mkdir doc-htmlpages
&&
48 git init-db ||
exit $?
50 if SID
=$
(git fetch-pack
"$MASTERREPO" html
)
52 git update-ref HEAD
`expr "$SID" : '\(.*\) .*'` &&
53 git checkout ||
exit $?
56 test -d doc-manpages ||
(
59 git init-db ||
exit $?
61 if SID
=$
(git fetch-pack
"$MASTERREPO" man
)
63 git update-ref HEAD
`expr "$SID" : '\(.*\) .*'` &&
64 git checkout ||
exit $?
67 find doc-htmlpages doc-manpages
-type d
-name '.git' -prune -o \
68 -type f
-print0 |
xargs -0 rm -f
71 make WEBDOC_DEST
="$DOCREPO/doc-htmlpages" install-webdoc
>..
/:html.log
2>&1 &&
76 mv git.html saved-git-html
&&
77 make WEBDOC_DEST
="$PUBLIC" ASCIIDOC_EXTRA
='-a stalenotes' \
78 install-webdoc
>>..
/:html.log
2>&1 &&
79 mv saved-git-html git.html
81 echo "* No public html at $PUBLIC"
84 cd ..
/doc-htmlpages
&&
85 (git add . ||
echo no new files
-- not a big deal
) &&
86 if git commit
-a -m "Autogenerated HTML docs for $NID"
88 git-send-pack
"$MASTERREPO" master
:refs
/heads
/html ||
{
93 echo "* No changes in html docs"
96 cd ..
/Documentation
&&
98 man1
="$DOCREPO/doc-manpages/man1" \
99 man7
="$DOCREPO/doc-manpages/man7" \
100 man1dir
="$DOCREPO/doc-manpages/man1" \
101 man7dir
="$DOCREPO/doc-manpages/man7" \
102 install >..
/:man.log
2>&1 &&
104 cd ..
/doc-manpages
&&
105 (git add . ||
echo no new files
-- not a big deal
) &&
106 if git commit
-a -m "Autogenerated man pages for $NID"
108 git-send-pack
"$MASTERREPO" master
:refs
/heads
/man ||
{
113 echo "* No changes in manual pages"