>From 2899a877f801288cfb48f1a4fe01f9d76e23c2e9 Mon Sep 17 00:00:00 2001
From: "A. Gordon"
Date: Thu, 6 Nov 2014 16:00:50 -0500
Subject: [PATCH] maint: add -G/--git option to gnu-web-doc-update
* build-aux/gnu-web-doc-update - added option -G/--git to push updated
manual/documentation to the Web Git repositories.
--EXPERIMENTAL--
See here for details:
http://lists.gnu.org/archive/html/savannah-hackers-public/2014-11/msg00001.html
Pushed commits will appear on:
http://gnu.housegordon.org/software//manual/
---
build-aux/gnu-web-doc-update | 47 ++++++++++++++++++++++++++++----------------
1 file changed, 30 insertions(+), 17 deletions(-)
diff --git a/build-aux/gnu-web-doc-update b/build-aux/gnu-web-doc-update
index 7af2f18..72ed6db 100755
--- a/build-aux/gnu-web-doc-update
+++ b/build-aux/gnu-web-doc-update
@@ -39,6 +39,7 @@ assumes all documentation is in the doc/ sub-directory.
Options:
-C, --builddir=DIR location of (configured) Makefile (default: .)
+ -G, --git push to GIT repository instead of CVS
-n, --dry-run don't actually commit anything
--help print this help, then exit
--version print version number, then exit
@@ -107,6 +108,7 @@ find_tool XARGS gxargs xargs
builddir=.
dryrun=
+repotype=cvs
while test $# != 0
do
# Handle --option=value by splitting apart and putting back on argv.
@@ -122,6 +124,7 @@ do
case $1 in
--help|--version) ${1#--};;
-C|--builddir) shift; builddir=$1; shift ;;
+ -G|--git) repotype=git; shift;;
-n|--dry-run) dryrun=echo; shift;;
--*) die "unrecognized option: $1";;
*) break;;
@@ -167,23 +170,33 @@ cd "$srcdir"
set +e
tmp=$(mktemp -d web-doc-update.XXXXXX) || exit 1
-( cd $tmp \
- && $CVS -d address@hidden:/webcvs/$pkg co $pkg )
-$RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
-
-(
- cd $tmp/$pkg/manual
-
- # Add all the files. This is simpler than trying to add only the
- # new ones because of new directories: it would require iterating on
- # adding the outer directories, and then their contents.
- #
- # find guarantees that we add outer directories first.
- find . -name CVS -prune -o -print \
- | $XARGS --no-run-if-empty -- $dryrun $CVS add -ko
-
- $dryrun $CVS ci -m $version
-)
+if test "x$repotype" = "xgit" ; then
+ $GIT clone --quiet address@hidden:/srv/git/web/$pkg $tmp/$pkg || exit 1
+ $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/$pkg/manual || exit 1
+ (
+ cd $tmp/$pkg
+ $dryrun $GIT commit --quiet --all -m "Updated Manual for $version" \
+ && $dryrun $GIT push
+ ) || exit 1
+else
+ ( cd $tmp \
+ && $CVS -d address@hidden:/webcvs/$pkg co $pkg )
+ $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
+
+ (
+ cd $tmp/$pkg/manual
+
+ # Add all the files. This is simpler than trying to add only the
+ # new ones because of new directories: it would require iterating on
+ # adding the outer directories, and then their contents.
+ #
+ # find guarantees that we add outer directories first.
+ find . -name CVS -prune -o -print \
+ | $XARGS --no-run-if-empty -- $dryrun $CVS add -ko
+
+ $dryrun $CVS ci -m $version
+ )
+fi
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
--
1.9.1