#!/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 . # # 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 #------------------------------------------------------------------------------