From c1c6243c3e24c1ee017e6f04b72a0b476f27c3a4 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Tue, 16 May 2017 10:53:07 +0200 Subject: [PATCH] ENH: pass through doc/Allwmake arguments, add -config, -dir options - can run doxygen with an alternative Doxyfile, which is useful when verifying generated content for particular classes. Eg, PATH/doc/Allwmake -dir $PWD --- doc/Allwmake | 4 +-- doc/Doxygen/Allwmake | 58 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 54 insertions(+), 8 deletions(-) diff --git a/doc/Allwmake b/doc/Allwmake index f6684e337c5..57d993de842 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 9947ab925d1..726c5fbbe7e 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 -- GitLab