chris@168: #!/bin/sh chris@168: chris@168: # Run this script from /var/doc/ chris@168: chris@168: # Find Hg repo and update it chris@168: chris@168: docdir=$(pwd) chris@168: name=$(basename $(pwd)) chris@168: hgdir="/var/hg/$name" chris@168: echo "Extracting doc for $name" chris@168: if [ ! -d "$hgdir" ]; then chris@168: echo "Error: No $hgdir found for project $name" chris@168: exit 1 chris@168: fi chris@168: ( cd "$hgdir" ; hg update ) || exit 1 chris@168: chris@168: # Identify either a Doxyfile or some Java packages chris@168: chris@168: # TODO: Doxyfile chris@168: chris@178: doxyfile=`find "$hgdir" -type f -name Doxyfile -print | head -1` chris@178: chris@178: echo "This project contains a Doxyfile:" chris@178: echo "$doxyfile" chris@178: chris@178: if [ -z "$doxyfile" ]; then chris@178: echo "No Doxyfile: skipping" chris@178: else chris@178: chris@178: # hmm. should be a whitelist chris@178: chris@178: ( cd "$hgdir" && grep -vi OUTPUT_DIRECTORY "$doxyfile" | grep -vi HTML_OUTPUT | sed -e '$a OUTPUT_DIRECTORY='"$docdir" -e '$a HTML_OUTPUT = .' | doxygen - ) chris@178: chris@178: fi chris@168: chris@168: # This is very rough; check what is actually permitted for package chris@168: # declarations chris@168: chris@168: java_packages=`find "$hgdir" -type f -name \*.java -print | \ chris@178: xargs grep -h '^ *package [a-zA-Z][a-zA-Z0-9\._-]* *; *' | \ chris@178: sort | uniq | \ chris@178: sed -e 's/^ *package //' -e 's/ *; *$//'` chris@168: chris@178: echo "This project contains Java packages:" chris@168: echo "$java_packages" chris@168: chris@178: if [ -z "$java_packages" ]; then chris@178: echo "No Java packages: skipping" chris@178: exit 0 chris@178: fi chris@178: chris@178: # This won't work if code is in a subdir, chris@178: # e.g. src/com/example/project/Hello.java chris@178: chris@178: # We need to convert the package name back to a path, and check chris@178: # whether that matches the tail of the path to a java file that chris@178: # declares itself to be in that package... but we don't have that list chris@178: # of java files to hand here... hm chris@168: chris@168: javadoc -sourcepath "$hgdir" -d . -subpackages $java_packages -verbose chris@168: chris@168: # If we have just written something to a doc directory that was chris@168: # previously empty, we should switch on Embedded for this project