docs-common/bin bulkbuild,1.3,1.4

Paul W. Frields (pfrields) fedora-docs-commits at redhat.com
Wed Nov 30 12:56:37 UTC 2005


Author: pfrields

Update of /cvs/docs/docs-common/bin
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv23504

Modified Files:
	bulkbuild 
Log Message:
Update bulkbuild for more flexibility


Index: bulkbuild
===================================================================
RCS file: /cvs/docs/docs-common/bin/bulkbuild,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- bulkbuild	29 Nov 2005 21:23:54 -0000	1.3
+++ bulkbuild	30 Nov 2005 12:56:30 -0000	1.4
@@ -1,7 +1,9 @@
 #!/bin/bash
 #
+# Written by stickster :)
+#
 # Pull all active FDP docs from CVS, build and install HTML in
-# folder $HOME/fdpdocs-html.
+# TARGETDIR folder.
 #
 # This script is not designed to be run inside a local CVS repository;
 # it is only stored here for convenience and upkeep.  It may be used
@@ -9,47 +11,158 @@
 # hand, it may be vaporized.
 #
 
+MYSELF="$(basename "$0")"
 NOW="$(date +%Y%m%d%H%M%S)"
-FDPDIR="${HOME}/fdpdocs-cvs${NOW}"
-HTMLDIR="${HOME}/fdpdocs-html"
-# Do this anonymously for now
-ANONCVS=":pserver:anonymous at cvs.fedora.redhat.com:2401/cvs/docs"
-#INTERACT=no #default
 
+print_usage() {
+    echo "$MYSELF: Usage: $MYSELF [options...]"
+    echo "   -m WORKDIR   : set home directory, default $HOME"
+    echo "   -f FDPDIR    : set d/l dir for CVS, default $FDPDIR"
+    echo "   -D TARGETDIR : set target dir for built files, default $TARGETDIR"
+    echo "   -a ANONCVS   : set CVS repo location (cvs -d), default $ANONCVS"
+    echo "   -r REV       : checkout REV from CVS (global), default $REV"
+    echo "   -Q           : make CVS checkout less quiet"
+    echo "   -c           : build chunked HTML"
+    echo "   -n           : build HTML nochunks"
+    echo "   -p           : build PDF (not working currently)"
+    echo "   -t           : build tarball"
+    echo "   -h           : print usage (this message)"
+}
+
+
+set_vars() {
+    [ -z "$WORKDIR" ] && WORKDIR="${HOME}"
+    [ -z "$FDPDIR" ] && FDPDIR="${WORKDIR}/fdpdocs-cvs${NOW}"
+    [ -z "$TARGETDIR" ] && TARGETDIR="/var/www/webtest/docs"
+    # Do this anonymously for now
+    [ -z "$ANONCVS" ] && ANONCVS=":pserver:anonymous at cvs.fedora.redhat.com:/cvs/docs"
+    [ -z "$REV" ] && REV="HEAD"
+    [ -z "$REDIR" ] && REDIR="/dev/null"
+    [ -z "$QUIET" ] && QUIET="-Q"
+}
+
+
+# just to make sure defaults are read
+unset FDPDIR HTMLDIR ANONCVS TAG CHUNKS NOCHUNKS PDF TARBALL VERBOSE
+BUILDS=0
+
+while getopts "m:f:D:a:r:Qcnpthv" OPT; do
+    case $OPT in
+	m )
+	    WORKDIR="$OPTARG"
+	    ;;
+	f )
+	    FDPDIR="$OPTARG"
+	    ;;
+	D )
+	    TARGETDIR="$OPTARG"
+	    ;;
+	a )
+	    ANONCVS="$OPTARG"
+	    ;;
+	r )
+	    REV="$OPTARG"
+	    ;;
+	Q )
+	    QUIET="-q"
+	    ;;
+	c )
+	    CHUNKS="yes"
+	    BUILDS=$(($BUILDS+1))
+	    ;;
+	n )
+	    NOCHUNKS="yes"
+	    BUILDS=$(($BUILDS+1))
+	    ;;
+	p )
+	    PDF="yes"  # But PDF doesn't work yet, don't do this!
+	    BUILDS=$(($BUILDS+1))
+	    ;;
+	t )
+	    TARBALL="yes"
+	    BUILDS=$(($BUILDS+1))
+	    ;;
+	h )
+	    set_vars
+	    print_usage
+	    exit 0
+	    ;;
+	v )
+	    REDIR="/dev/stdout"
+	    ;;
+	* )
+	    echo "$MYSELF: invalid option: $OPT"
+	    print_usage
+	    exit 10
+	    ;;
+    esac
+done
+shift $(($OPTIND - 1))
+
+
+if [ $BUILDS -lt 1 ]; then
+    echo "$MYSELF: nothing to do, try selecting one of [-c|-n|-p|-t]"
+    exit 20
+fi
+
+
+set_vars
 mkdir "${FDPDIR}" || ( echo "Could not mkdir ${FDPDIR}" ; exit 254 )
-mkdir "${HTMLDIR}" || ( echo "Could not mkdir ${FDPDIR}" ; exit 254 )
+mkdir -p "${TARGETDIR}" || ( echo "Could not mkdir ${FDPDIR}" ; exit 254 )
 pushd "${FDPDIR}" >/dev/null || ( echo "Could not pushd ${FDPDIR}" ; exit 253 )
 
-cvs -d $ANONCVS login
-cvs -qz3 -d $ANONCVS co docs-common
+
+echo "Checking out docs-common from Fedora Docs CVS"
+#cvs -d $ANONCVS login
+cvs "$QUIET" -z3 -d $ANONCVS co docs-common
+
 
 for DOC in `cat docs-common/bin/active`; do
-    cvs -qz3 -d $ANONCVS co $DOC
+    DONE=""
+    echo "Checking out module $DOC from Fedora Docs CVS"
+    cvs "$QUIET" -z3 -d $ANONCVS co $DOC 2>&1 > $REDIR
     pushd "$DOC" >/dev/null || (echo "Couldn't cd to $DOCDIR" ; exit 252 )
     make showvars > tmpvars
     . tmpvars
     rm -f tmpvars
-    make html
-    for LANG in $LANGUAGES ; do
-	DESTDIR="${HTMLDIR}/${DOCBASE}/${LANG}"
-	mkdir -p "${DESTDIR}"
-	cp -a "${DOCBASE}-${LANG}"/* "${DESTDIR}"
-    done
+    if [ "$CHUNKS" = "yes" ]; then
+	echo "Making chunked HTML for ${DOCBASE}"
+	make html 2>&1 > $REDIR || ( echo "$MYSELF: CHUNKS failed" ;\
+	    exit 251 )
+	for LANG in $LANGUAGES ; do
+	    DESTDIR="${TARGETDIR}/${DOCBASE}/${LANG}"
+	    [ ! -d "$DESTDIR" ] && mkdir -p $DESTDIR
+	    cp -r "${DOCBASE}-${LANG}/"* "${DESTDIR}"
+	done
+    fi
+    if [ "$NOCHUNKS" = "yes" ]; then
+	echo "Making nochunks HTML for ${DOCBASE}"
+	mak html-nochunks 2>&1 > $REDIR || ( echo "$MYSELF: NOCHUNKS failed" ;\
+	    exit 251 )
+	for LANG in $LANGUAGES ; do
+	    DESTDIR="${TARGETDIR}/${DOCBASE}/" # add $LANG if desired
+	    [ ! -d "$DESTDIR" ] && mkdir -p $DESTDIR
+	    cp -r "${DOCBASE}-${LANG}.html" "${DESTDIR}"
+	done
+    fi
+    if [ "$TARBALL" = "yes" ]; then
+	echo "Making tarball for ${DOCBASE}"
+	make tarball 2>&1 > $REDIR || ( echo "$MYSELF: TARBALL failed" ;\
+	    exit 251 )
+	for LANG in $LANGUAGES ; do
+	    DESTDIR="${TARGETDIR}/${DOCBASE}/" # add $LANG if desired
+	    [ ! -d "$DESTDIR" ] && mkdir -p $DESTDIR
+	    cp -r "${DOCBASE}-${LANG}.tar.gz" "${DESTDIR}"
+	done
+    fi
+
     popd >/dev/null
+    
 done
     
 
 popd >/dev/null
-if [ ! -z "$INTERACT" ]; then
-    echo -n "OK to remove temp dir ${FDPDIR} [y/n]? "
-    read -sn1 REPLY
-    case $REPLY in
-	y|Y )
-	    rm -rf "${FDPDIR}"
-	    echo
-	    ;;
-	* )
-	    echo "... not removed."
-	    ;;
-    esac
-fi
+[ "$FDPDIR" != "/" ] && [ "$FDPDIR" != "$HOME" ] && rm -rf "${FDPDIR}"
+exit 0
+
+




More information about the docs-commits mailing list