diff --git a/doc/Allwmake b/doc/Allwmake index f6684e337c50d0946ec6e957bddbd74d3c57bd00..57d993de842535f03966d2857eb88c443fef3660 100755 --- a/doc/Allwmake +++ b/doc/Allwmake @@ -1,9 +1,9 @@ #!/bin/sh cd ${0%/*} || exit 1 # Run from this directory -# fix permissions (NB: '+X' and not '+x'!) +# Fix permissions (NB: '+X' and not '+x'!) chmod a+rX $WM_PROJECT_DIR $WM_PROJECT_DIR/doc Doxygen -Doxygen/Allwmake +exec Doxygen/Allwmake "$@" #------------------------------------------------------------------------------ diff --git a/doc/Doxygen/Allwmake b/doc/Doxygen/Allwmake index 9947ab925d1f8184601057a17d0cbd5edb94eab7..726c5fbbe7e152ccc3a995ed783b6fa572c1a92c 100755 --- a/doc/Doxygen/Allwmake +++ b/doc/Doxygen/Allwmake @@ -14,13 +14,17 @@ usage() { usage: ${0##*/} [OPTION] options: - -online use links to the Github repositories instead of the local source code + -config name use alternative doxygen config + -dir name process given directory name directly + -online use links to the Github repositories instead of the + local source code -help USAGE exit 1 } +# ----------------------------------------------------------------------------- defineURL() { WEB_PATH="https://develop.openfoam.com" @@ -39,13 +43,43 @@ defineURL() { export FOAM_ONLINE_REPO="$FOAM_BASE_REPO/blob/${FOAM_REPO_TAG}" } -# parse options + +unset configName dirName + +# Parse options while [ "$#" -gt 0 ] do case "$1" in -h | -help) usage ;; + -config) + configName="$2" + [ -f "$configName" ] || { + # No such file. Try some common alternatives + for ending in $configName ".$configName" "-$configName" + do + if [ -f "Doxyfile$ending" ] + then + configName="Doxyfile$ending" + break + fi + done + } + [ -f "$configName" ] || { + echo "Could not resolve Doxyfile config: $configName" 1>&2 + exit 1 + } + shift + ;; + -dir) + dirName="$2" + [ -d "$dirName" ] || { + echo "Could not resolve input directory: $dirName" 1>&2 + exit 1 + } + shift + ;; -online) defineURL ;; @@ -56,19 +90,31 @@ do shift done + #------------------------------------------------------------------------------ rm -rf latex man -# remove html directory in background +# Remove html directory in background mv html html-stagedRemove$$ 2> /dev/null rm -rf html-stagedRemove$$ >/dev/null 2>&1 & -# ensure that created files are readable by everyone +# Ensure that created files are readable by everyone umask 22 -doxygen -# fix permissions (NB: '+X' and not '+x'!) +if [ -n "$dirName" ] +then + # Create a temporary with only the specified directory + tmpConfig="${TMPDIR:-/tmp}/Doxyfile.$$" + trap 'rm -f $tmpConfig 2>/dev/null; exit 0' EXIT TERM INT + cat $PWD/Doxyfile > $tmpConfig + echo "INPUT = $dirName" >> $tmpConfig + doxygen $tmpConfig +else + doxygen $configName +fi + +# Fix permissions (NB: '+X' and not '+x'!) chmod -R a+rX html latex man 2>/dev/null echo