#!/bin/bash # # Runs doxygen and stores its results in the skia-autogen repo, so that they # can be browsed at http://skia-autogen.googlecode.com/svn/docs/html/index.html # # The DOXYGEN_TEMPDIR env variable is the working directory within which we will # check out the code, generate documentation, and store the doxygen log # (by default, /tmp/skia-doxygen). The DOXYGEN_COMMIT env variable determines # whether docs should be commited (true by default). # # Sample Usage: # export DOXYGEN_TEMPDIR=/tmp/doxygen # export DOXYGEN_COMMIT=false # bash update-doxygen.sh # Prepare a temporary dir and check out Skia trunk and docs. cd DOXYGEN_TEMPDIR=${DOXYGEN_TEMPDIR:-/tmp/skia-doxygen} DOXYGEN_COMMIT=${DOXYGEN_COMMIT:-true} mkdir -p $DOXYGEN_TEMPDIR cd $DOXYGEN_TEMPDIR if [ -d "trunk" ]; then svn update --accept theirs-full trunk else svn checkout http://skia.googlecode.com/svn/trunk # read-only fi if [ -d "docs" ]; then svn update --accept theirs-full docs else svn checkout https://skia-autogen.googlecode.com/svn/docs # writeable if [ ! -f "docs/static_footer.txt" ]; then cp trunk/tools/doxygen_footer.txt docs/static_footer.txt fi fi # Run Doxygen. cd trunk doxygen Doxyfile ret_code=$? if [ $ret_code != 0 ]; then echo "Error while executing Doxygen command" exit $ret_code fi cd ../docs # Add any newly created files to Subversion. NEWFILES=$(svn status | grep ^\? | awk '{print $2}') if [ -n "$NEWFILES" ]; then svn add $NEWFILES fi # We haven't updated the timestamp footer yet... if there are no changes # yet, just exit. (We'll wait until there are any actual doc changes before # updating the timestamp and committing changes to the repository.) MODFILES=$(svn status | grep ^[AM]) if [ -z "$MODFILES" ]; then echo "No documentation updates, exiting early." exit 0 fi # Update the timestamp footer. cat >iframe_footer.html <
Generated on $(date) for skia by doxygen $(doxygen --version)
EOF # Make sure that all files have the correct mimetype. find . -name '*.html' -exec svn propset svn:mime-type text/html '{}' \; find . -name '*.css' -exec svn propset svn:mime-type text/css '{}' \; find . -name '*.js' -exec svn propset svn:mime-type text/javascript '{}' \; find . -name '*.gif' -exec svn propset svn:mime-type image/gif '{}' \; find . -name '*.png' -exec svn propset svn:mime-type image/png '{}' \; # Output files with documentation updates. echo -e "\n\nThe following are the documentation updates:" echo $MODFILES if $DOXYGEN_COMMIT ; then # Commit the updated docs to the subversion repo. svn commit --message 'commit doxygen-generated documentation' fi