chris@203: #!/bin/bash chris@203: chris@203: # Run this script from anywhere chris@203: chris@203: # Enumerate Hg repos; make sure they're up to date; extract docs for chris@203: # each chris@203: chris@203: hgdir="/var/hg" chris@203: docdir="/var/doc" chris@203: chris@203: progdir=$(dirname $0) chris@203: case "$progdir" in chris@203: /*) ;; chris@203: *) progdir="$(pwd)/$progdir" ;; chris@203: esac chris@203: chris@203: types="javadoc doxygen" chris@203: chris@203: for x in $types; do chris@203: if [ ! -x "$progdir/extract-$x.sh" ]; then chris@203: echo "Helper script not available: $progdir/extract-$x.sh" chris@203: exit 1 chris@203: fi chris@203: done chris@203: chris@203: for projectdir in "$hgdir"/* ; do chris@203: chris@203: if [ -d "$projectdir" ] && [ -d "$projectdir/.hg" ]; then chris@203: chris@203: project=$(basename "$projectdir") chris@203: echo "Found Hg repo: $projectdir for project $project" chris@203: chris@203: ##!!! do as www-data: chris@203: ( cd "$projectdir" ; sudo -u www-data hg -q update ) || exit 1 chris@203: chris@203: tmpdir=$(mktemp -d "$docdir/tmp_XXXXXX") chris@203: chris@203: case "$tmpdir" in chris@203: /*) ;; chris@203: *) echo "Temporary directory creation failed"; exit 1;; chris@203: esac chris@203: chris@203: targetdir="$docdir/$project" chris@203: chris@203: echo "Temporary dir is $tmpdir, eventual target is $targetdir" chris@203: chris@203: ##!!! do as docs user: chris@203: for x in $types; do chris@203: if "$progdir/extract-$x.sh" "$project" "$tmpdir"; then chris@203: break chris@203: else chris@203: echo "Failed to extract via type $x" chris@203: fi chris@203: done chris@203: chris@203: if [ -f "$tmpdir/index.html" ]; then chris@203: echo "Processing resulted in an index.html being created, looks good!" chris@203: if [ ! -d "$targetdir" ] || [ ! -f "$targetdir/index.html" ]; then chris@203: # # If we have just written something to a doc directory that was chris@203: # # previously empty, we should switch on Embedded for this project chris@203: echo "This project hasn't had doc extracted before -- I should switch on Embedded for it at this point" chris@203: fi chris@203: chris@203: if [ -d "$targetdir" ]; then chris@203: mv "$targetdir" "$targetdir"_"$$" && \ chris@203: mv "$tmpdir" "$targetdir" && \ chris@203: rm -rf "$targetdir"_"$$" chris@203: else chris@203: echo "Processing resulted in no index.html, skipping" chris@203: mv "$tmpdir" "$targetdir" chris@203: fi chris@203: chris@203: else chris@203: # generated nothing (useful) chris@203: rm -rf "$tmpdir" chris@203: fi chris@203: fi chris@203: done chris@203: