summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorPaul W. Frields <stickster@gmail.com>2005-11-30 12:56:30 +0000
committerPaul W. Frields <stickster@gmail.com>2005-11-30 12:56:30 +0000
commit830b561dd385f72bfa6da5f4c0a6cf20878999af (patch)
tree2dfa99b60cffdbee6610d7be963e931bb4bc3822 /bin
parentc87733e07cb2ef70ecd92142f71054c343f570de (diff)
downloadfedora-doc-utils-830b561dd385f72bfa6da5f4c0a6cf20878999af.tar.gz
fedora-doc-utils-830b561dd385f72bfa6da5f4c0a6cf20878999af.tar.xz
fedora-doc-utils-830b561dd385f72bfa6da5f4c0a6cf20878999af.zip
Update bulkbuild for more flexibility
Diffstat (limited to 'bin')
-rw-r--r--bin/bulkbuild171
1 files changed, 142 insertions, 29 deletions
diff --git a/bin/bulkbuild b/bin/bulkbuild
index 350096a..ec4ec0a 100644
--- a/bin/bulkbuild
+++ b/bin/bulkbuild
@@ -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@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@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
+
+