140 lines
3.1 KiB
Bash
Executable File
140 lines
3.1 KiB
Bash
Executable File
#!/bin/sh
|
|
cd "${0%/*}" || exit # Run from this directory
|
|
[ -d "$WM_PROJECT_DIR" ] || {
|
|
echo "Error (${0##*/}) : no \$WM_PROJECT_DIR found"
|
|
echo " Check your OpenFOAM environment and installation"
|
|
echo " WM_PROJECT_DIR=$WM_PROJECT_DIR"
|
|
exit 1
|
|
}
|
|
|
|
usage() {
|
|
exec 1>&2
|
|
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
|
cat<<USAGE
|
|
|
|
usage: ${0##*/} [OPTION] [dir1 .. dirN]
|
|
options:
|
|
-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
|
|
|
|
Run doxygen on OpenFOAM sources, or on specified directories only.
|
|
|
|
USAGE
|
|
exit 1
|
|
}
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
defineURL() {
|
|
WEB_PATH="https://develop.openfoam.com"
|
|
FOAM_REPO_VERSION="$WM_PROJECT-plus"
|
|
|
|
case "$WM_PROJECT_VERSION" in
|
|
v[1-9][.0-9]*)
|
|
FOAM_REPO_TAG="$WM_PROJECT-$WM_PROJECT_VERSION"
|
|
;;
|
|
*)
|
|
FOAM_REPO_TAG="master"
|
|
;;
|
|
esac
|
|
|
|
export FOAM_BASE_REPO="$WEB_PATH/Development/$FOAM_REPO_VERSION"
|
|
export FOAM_ONLINE_REPO="$FOAM_BASE_REPO/blob/${FOAM_REPO_TAG}"
|
|
}
|
|
|
|
|
|
unset configName dirNames
|
|
|
|
# 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)
|
|
shift
|
|
if [ -d "$1" ]
|
|
then
|
|
dirNames="$dirNames $1"
|
|
else
|
|
echo "Could not resolve input directory: $1" 1>&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
-online)
|
|
defineURL
|
|
;;
|
|
-*)
|
|
usage "unknown option: '$1'"
|
|
;;
|
|
|
|
*) # dirName
|
|
if [ -d "$1" ]
|
|
then
|
|
dirNames="$dirNames $1"
|
|
else
|
|
echo "Could not resolve input directory: $1" 1>&2
|
|
fi
|
|
;;
|
|
*)
|
|
usage "unknown option/argument: '$1'"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
rm -rf latex man
|
|
|
|
# Remove html directory in background
|
|
mv html html-stagedRemove$$ 2>/dev/null
|
|
rm -rf html-stagedRemove$$ 2>/dev/null &
|
|
|
|
# Ensure that created files are readable by everyone
|
|
umask 22
|
|
|
|
if [ -n "$dirNames" ]
|
|
then
|
|
(
|
|
cat ${configName:-Doxyfile}
|
|
echo "INPUT = $dirNames"
|
|
) | doxygen -
|
|
else
|
|
doxygen $configName
|
|
fi
|
|
|
|
# Fix permissions (NB: '+X' and not '+x'!)
|
|
chmod -R a+rX html latex man 2>/dev/null
|
|
|
|
echo
|
|
echo "Done doxygen"
|
|
echo
|
|
|
|
#------------------------------------------------------------------------------
|