Rewrite documentation hook
parent
c150b0e7f2
commit
7dc35b9485
32
R
32
R
|
@ -1,32 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
m=$(git-rev-parse "master^0")
|
||||
for branch
|
||||
do
|
||||
b=$(git-rev-parse "$branch^0")
|
||||
case "$(git-merge-base --all "$b" "$m")" in
|
||||
"$m")
|
||||
echo >&2 "$branch: up to date"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
git-show-branch "$branch" master
|
||||
while :
|
||||
do
|
||||
echo -n >&2 "Rebase $branch [Y/n]? "
|
||||
read ans
|
||||
case "$ans" in
|
||||
[Yy]*)
|
||||
git rebase master "$branch" || exit
|
||||
break
|
||||
;;
|
||||
[Nn]*)
|
||||
echo >&2 "Not rebasing $branch"
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo >&2 "Sorry, I could not hear you"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
|
@ -0,0 +1,104 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This script is called from the post-update hook, and when
|
||||
# the master branch is updated, run in $HOME/doc-git, like
|
||||
# this:
|
||||
: <<\END_OF_COMMENTARY
|
||||
|
||||
$ cat >hooks/post-update
|
||||
#!/bin/sh
|
||||
case " $* " in
|
||||
*' refs/heads/master '*)
|
||||
echo $HOME/git-doc/dodoc.sh | at now
|
||||
;;
|
||||
esac
|
||||
exec git-update-server-info
|
||||
$ chmod +x hooks/post-update
|
||||
|
||||
END_OF_COMMENTARY
|
||||
|
||||
# $HOME/doc-git is a clone of the git.git repository and
|
||||
# has the master branch checkd out. We update the working
|
||||
# tree and build pre-formatted documentation pages, install
|
||||
# in doc-htmlpages and doc-manapges subdirectory here.
|
||||
# These two are their own git repository, and when they are
|
||||
# updated the updates are pushed back into their own branches
|
||||
# in git.git repository.
|
||||
|
||||
ID=`git-rev-parse --verify refs/heads/master` || exit $?
|
||||
|
||||
unset GIT_DIR
|
||||
|
||||
PUBLIC=/pub/software/scm/git/docs &&
|
||||
MASTERREPO=`pwd` &&
|
||||
DOCREPO=`dirname "$0"` &&
|
||||
test "$DOCREPO" != "" &&
|
||||
cd "$DOCREPO" || exit $?
|
||||
|
||||
git pull "$MASTERREPO" master &&
|
||||
test $(git-rev-parse --verify refs/heads/master) == "$ID" || exit $?
|
||||
|
||||
# Set up subrepositories
|
||||
test -d doc-htmlpages || (
|
||||
mkdir doc-htmlpages &&
|
||||
cd doc-htmlpages &&
|
||||
git init-db || exit $?
|
||||
|
||||
if ID=$(git fetch-pack "$MASTERREPO" html)
|
||||
then
|
||||
git update-ref HEAD `expr "$ID" : '\(.*\) .*'` &&
|
||||
git checkout || exit $?
|
||||
fi
|
||||
)
|
||||
test -d doc-manpages || (
|
||||
mkdir doc-manpages &&
|
||||
cd doc-manpages &&
|
||||
git init-db || exit $?
|
||||
|
||||
if ID=$(git fetch-pack "$MASTERREPO" man)
|
||||
then
|
||||
git update-ref HEAD `expr "$ID" : '\(.*\) .*'` &&
|
||||
git checkout || exit $?
|
||||
fi
|
||||
)
|
||||
find doc-htmlpages doc-manpages -type d -name '.git' -prune -o \
|
||||
-type f -print0 | xargs -0 rm -f
|
||||
|
||||
cd Documentation &&
|
||||
make WEBDOC_DEST="$DOCREPO/doc-htmlpages" install-webdoc >../:html.log 2>&1 &&
|
||||
|
||||
if test -d $PUBLIC
|
||||
then
|
||||
make WEBDOC_DEST="$PUBLIC" install-webdoc >>../:html.log 2>&1
|
||||
else
|
||||
echo "* No public html at $PUBLIC"
|
||||
fi || exit $?
|
||||
|
||||
cd ../doc-htmlpages &&
|
||||
git add . &&
|
||||
if git commit -a -m "Autogenerated HTML docs for $ID"
|
||||
then
|
||||
git-send-pack "$MASTERREPO" master:refs/heads/html || {
|
||||
echo "* HTML failure"
|
||||
exit 1
|
||||
}
|
||||
else
|
||||
echo "* No changes in html docs"
|
||||
fi
|
||||
|
||||
cd ../Documentation &&
|
||||
make man1="$DOCREPO/doc-manpages/man1" man7="$DOCREPO/doc-manpages/man7" \
|
||||
install >../:man.log 2>&1 &&
|
||||
|
||||
cd ../doc-manpages &&
|
||||
git add . &&
|
||||
if git commit -a -m "Autogenerated man pages for $ID"
|
||||
then
|
||||
git-send-pack "$MASTERREPO" master:refs/heads/man || {
|
||||
echo "* man failure"
|
||||
exit 1
|
||||
}
|
||||
else
|
||||
echo "* No changes in manual pages"
|
||||
fi
|
||||
|
Loading…
Reference in New Issue