annotate extra/soundsoftware/extract-docs.sh @ 203:1e55195bca45 feature_20

Pull doc extractor script out into separate javadoc, doxygen, and controller scripts
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Mon, 07 Feb 2011 16:46:28 +0000
parents
children 292cde42265a
rev   line source
chris@203 1 #!/bin/bash
chris@203 2
chris@203 3 # Run this script from anywhere
chris@203 4
chris@203 5 # Enumerate Hg repos; make sure they're up to date; extract docs for
chris@203 6 # each
chris@203 7
chris@203 8 hgdir="/var/hg"
chris@203 9 docdir="/var/doc"
chris@203 10
chris@203 11 progdir=$(dirname $0)
chris@203 12 case "$progdir" in
chris@203 13 /*) ;;
chris@203 14 *) progdir="$(pwd)/$progdir" ;;
chris@203 15 esac
chris@203 16
chris@203 17 types="javadoc doxygen"
chris@203 18
chris@203 19 for x in $types; do
chris@203 20 if [ ! -x "$progdir/extract-$x.sh" ]; then
chris@203 21 echo "Helper script not available: $progdir/extract-$x.sh"
chris@203 22 exit 1
chris@203 23 fi
chris@203 24 done
chris@203 25
chris@203 26 for projectdir in "$hgdir"/* ; do
chris@203 27
chris@203 28 if [ -d "$projectdir" ] && [ -d "$projectdir/.hg" ]; then
chris@203 29
chris@203 30 project=$(basename "$projectdir")
chris@203 31 echo "Found Hg repo: $projectdir for project $project"
chris@203 32
chris@203 33 ##!!! do as www-data:
chris@203 34 ( cd "$projectdir" ; sudo -u www-data hg -q update ) || exit 1
chris@203 35
chris@203 36 tmpdir=$(mktemp -d "$docdir/tmp_XXXXXX")
chris@203 37
chris@203 38 case "$tmpdir" in
chris@203 39 /*) ;;
chris@203 40 *) echo "Temporary directory creation failed"; exit 1;;
chris@203 41 esac
chris@203 42
chris@203 43 targetdir="$docdir/$project"
chris@203 44
chris@203 45 echo "Temporary dir is $tmpdir, eventual target is $targetdir"
chris@203 46
chris@203 47 ##!!! do as docs user:
chris@203 48 for x in $types; do
chris@203 49 if "$progdir/extract-$x.sh" "$project" "$tmpdir"; then
chris@203 50 break
chris@203 51 else
chris@203 52 echo "Failed to extract via type $x"
chris@203 53 fi
chris@203 54 done
chris@203 55
chris@203 56 if [ -f "$tmpdir/index.html" ]; then
chris@203 57 echo "Processing resulted in an index.html being created, looks good!"
chris@203 58 if [ ! -d "$targetdir" ] || [ ! -f "$targetdir/index.html" ]; then
chris@203 59 # # If we have just written something to a doc directory that was
chris@203 60 # # previously empty, we should switch on Embedded for this project
chris@203 61 echo "This project hasn't had doc extracted before -- I should switch on Embedded for it at this point"
chris@203 62 fi
chris@203 63
chris@203 64 if [ -d "$targetdir" ]; then
chris@203 65 mv "$targetdir" "$targetdir"_"$$" && \
chris@203 66 mv "$tmpdir" "$targetdir" && \
chris@203 67 rm -rf "$targetdir"_"$$"
chris@203 68 else
chris@203 69 echo "Processing resulted in no index.html, skipping"
chris@203 70 mv "$tmpdir" "$targetdir"
chris@203 71 fi
chris@203 72
chris@203 73 else
chris@203 74 # generated nothing (useful)
chris@203 75 rm -rf "$tmpdir"
chris@203 76 fi
chris@203 77 fi
chris@203 78 done
chris@203 79