summaryrefslogtreecommitdiffstats
path: root/bin/build-docs/build-docs
diff options
context:
space:
mode:
Diffstat (limited to 'bin/build-docs/build-docs')
-rw-r--r--bin/build-docs/build-docs173
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
+