diff --git a/bin/foamRunTutorials b/bin/foamRunTutorials index 5c2b49435b4f76e98ba2f6bcee678212e6c7b1a2..c4a5642dc176bc2d1ba05edb2f68ad682432bfec 100755 --- a/bin/foamRunTutorials +++ b/bin/foamRunTutorials @@ -4,23 +4,11 @@ # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation -# \\/ M anipulation | +# \\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# This file is part of OpenFOAM, licensed under GNU General Public License +# <http://www.gnu.org/licenses/>. # # Script # foamRunTutorials @@ -29,6 +17,10 @@ # Run either Allrun or blockMesh/application in current directory # and all its subdirectories. # +# For tutorials that are known to run poorly, an Allrun-optional +# placeholder can be used instead of the usual Allrun script. +# When this is detected, the case will be skipped. +# #------------------------------------------------------------------------------ . $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions @@ -52,6 +44,8 @@ do passArgs="-test" runTests=true ;; + + # Avoid infinite recursion when invoked from an Allrun or Alltest script -s | -skipFirst) skipFirst=true ;; @@ -62,22 +56,23 @@ do shift done -# If an argument is supplied do not execute ./Allrun to avoid recursion -if ! $skipFirst && $runTests && [ -f "./Alltest" ] +if ! $skipFirst && $runTests && test -f Alltest then - # Run speciallised Alltest script. + # Run specialized Alltest script ./Alltest $passArgs $* -elif ! $skipFirst && [ -f "./Allrun" ] +elif ! $skipFirst && test -f Allrun then - # Run specialised Allrun script. + # Run specialized Allrun script ./Allrun $passArgs $* +elif ! $skipFirst && test -f Allrun-optional +then + # Found Allrun-optional script - skip this tutorial. + echo "Skipped optional case $PWD" elif [ -d system ] then - # Run normal case. - parentDir=$(dirname $PWD) - application=$(getApplication) + # Run normal case with blockMesh and the application runApplication blockMesh - runApplication $application + runApplication $(getApplication) else # Loop over sub-directories and compile any applications for caseName in *