diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions index b73766b5d5af904c56c2e2d7bdf2fdf97339f7a7..f99ab370b509b491ab5e957b153386c1e481ceb4 100755 --- a/bin/tools/RunFunctions +++ b/bin/tools/RunFunctions @@ -42,23 +42,54 @@ isParallel() # isTest() { - for i in "$@"; do - if [ "$i" = "-test" ] - then - return 0 - fi - done + for i; do [ "$i" = "-test" ] && return 0; done return 1 } +# +# Extract 'numberOfSubdomains' from system/decomposeParDict +# (or alternative location). +# +# On failure: +# return '1' +# exit status 1 +# getNumberOfProcessors() { - foamDictionary -entry numberOfSubdomains -value system/decomposeParDict + # Re-use positional parameters for automatic whitespace elimination + set -- $(foamDictionary -entry numberOfSubdomains -value "${1:-system/decomposeParDict}") + + if [ "$#" -eq 1 ] + then + echo "$1" + else + echo "Error retrieving 'numberOfSubdomains' from decomposeParDict" 1>&2 + echo 1 + return 1 + fi } + +# +# Extract 'application' from system/controlDict +# +# On failure: +# return 'false' which is also a command (ie, shell builtin or /bin/false) +# exit status 1 +# getApplication() { - sed -ne 's/^ *application\s*\([a-zA-Z]*\)\s*;.*$/\1/p' system/controlDict + # Re-use positional parameters for automatic whitespace elimination + set -- $(foamDictionary -entry application -value system/controlDict) + + if [ "$#" -eq 1 ] + then + echo "$1" + else + echo "Error retrieving 'application' from controlDict" 1>&2 + echo false + return 1 + fi } runApplication()