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
|