diff options
Diffstat (limited to 'bin/build-docs/build-docs')
-rw-r--r-- | bin/build-docs/build-docs | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/bin/build-docs/build-docs b/bin/build-docs/build-docs new file mode 100644 index 0000000..c460c98 --- /dev/null +++ b/bin/build-docs/build-docs @@ -0,0 +1,173 @@ +#!/bin/bash +# +# Written by stickster :) +# Mangled by megacoder ;-P +# Further editing and packaging by nman64 +# +# Dedicated to the lazy Fedora Docs heroes. ;-) +# +# Pull all active FDP docs from CVS, build and install HTML in +# TARGETDIR folder. +# + +MYSELF="$(basename "$0")" +NOW="$(date +%Y%m%d%H%M%S)" + +print_usage() { + echo "$MYSELF: Usage: $MYSELF [options...]" + echo " -h : print usage (this message)" + 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 " -k : continue building in face of errors" +} + + +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 +unset KEEPON +BUILDS=0 + +while getopts "m:f:D:a:r:Qcnpthvk" 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" + ;; + k ) + KEEPON="-k" + ;; + * ) + 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 -p "${TARGETDIR}" || ( echo "Could not mkdir ${FDPDIR}" ; exit 254 ) +pushd "${FDPDIR}" >/dev/null || ( echo "Could not pushd ${FDPDIR}" ; exit 253 ) + + +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 +xargs -n1 echo <docs-common/bin/active | +while read DOC; +do + 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 + if [ "$CHUNKS" = "yes" ]; then + echo "Making chunked HTML for ${DOCBASE}" + make ${KEEPON} 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}" + make ${KEEPON} 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 +[ "$FDPDIR" != "/" ] && [ "$FDPDIR" != "$HOME" ] && rm -rf "${FDPDIR}" +exit 0 + |