103 lines
2.9 KiB
Bash
Executable File
103 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#------------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | www.openfoam.com
|
|
# \\/ M anipulation |
|
|
#------------------------------------------------------------------------------
|
|
# Copyright (C) 2011 OpenFOAM Foundation
|
|
# Copyright (C) 2019 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/>.
|
|
#
|
|
# Script
|
|
# foamCleanTutorials
|
|
#
|
|
# Description
|
|
# Run either Allwclean, Allclean or default cleanCase in current directory
|
|
# and all its subdirectories.
|
|
#
|
|
# When an argument is provided, it is treated as a directory name.
|
|
# If an option (eg, -self) is provided, it suppresses calling
|
|
# Allwclean or Allclean (ie, to avoid recursion)
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions # Tutorial clean functions
|
|
|
|
thisScript="$0"
|
|
if [ "/${thisScript#/}" != "$thisScript" ]
|
|
then
|
|
thisScript="$PWD/$thisScript"
|
|
fi
|
|
|
|
# Simple option/argument parsing.
|
|
# By default use Allclean, Allwclean when present
|
|
#
|
|
# If an argument is supplied, treat as a change directory
|
|
#
|
|
# If an option (eg, -self) is provided,
|
|
# do not execute ./Allwclean or ./Allclean (to avoid recursion)
|
|
|
|
withAllclean=true
|
|
|
|
if [ "$#" -gt 0 ]
|
|
then
|
|
case "$1" in
|
|
-h | -help*)
|
|
echo "${0##*/}: recursively clean an OpenFOAM case directory" 1>&2
|
|
exit 0
|
|
;;
|
|
-self | -*)
|
|
unset withAllclean
|
|
;;
|
|
*)
|
|
cd "$1" 2>/dev/null || {
|
|
echo "${0##*}: No such directory" 1>&2
|
|
exit 2
|
|
}
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
|
|
if [ -n "$withAllclean" ] && [ -f Allwclean ]
|
|
then
|
|
# Specialized script
|
|
./Allwclean
|
|
elif [ -n "$withAllclean" ] && [ -f Allclean ]
|
|
then
|
|
# Specialized script
|
|
./Allclean
|
|
elif [ -d system ]
|
|
then
|
|
# Normal case
|
|
cleanCase
|
|
elif [ -d Make ]
|
|
then
|
|
# Normal application
|
|
cleanApplication
|
|
else
|
|
# Recurse into subdirectories
|
|
for caseName in *
|
|
do
|
|
( cd $caseName 2>/dev/null && $thisScript )
|
|
done
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|