From d8a812ced15143348765d8537c79702cfb22260d Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Thu, 14 Jul 2011 11:26:42 +0200 Subject: [PATCH] ENH: add '-all' option to foamEtcFile for similar results as findEtcFiles --- bin/foamEtcFile | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/bin/foamEtcFile b/bin/foamEtcFile index 8a1f5d97e62..cf52c1d62a8 100755 --- a/bin/foamEtcFile +++ b/bin/foamEtcFile @@ -44,7 +44,7 @@ # #------------------------------------------------------------------------------- usage() { - [ "${quietOpt:-$silentOpt}" = true ] && exit 1 + [ "${optQuiet:-$optSilent}" = true ] && exit 1 exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -53,6 +53,7 @@ usage() { Usage: ${0##*/} [OPTION] fileName ${0##*/} [OPTION] -list options: + -all return all files (otherwise stop after the first match) -list list the directories to be searched -mode <mode> any combination of u(user), g(group), o(other) -prefix <dir> specify an alternative installation prefix @@ -129,7 +130,7 @@ esac # default mode is 'ugo' mode=ugo -unset listOpt quietOpt silentOpt +unset optAll optList optQuiet optSilent # parse options while [ "$#" -gt 0 ] @@ -138,8 +139,11 @@ do -h | -help) usage ;; + -a | -all) + optAll=true + ;; -l | -list) - listOpt=true + optList=true ;; -m | -mode) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" @@ -161,10 +165,10 @@ do shift ;; -q | -quiet) - quietOpt=true + optQuiet=true ;; -s | -silent) - silentOpt=true + optSilent=true ;; -v | -version) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" @@ -239,14 +243,15 @@ set -- $dirList # The main routine # -if [ "$listOpt" = true ] +exitCode=0 +if [ "$optList" = true ] then # list directories, or potential file locations [ "$nArgs" -le 1 ] || usage # a silly combination, but -quiet does have precedence - [ "$quietOpt" = true ] && exit 0 + [ "$optQuiet" = true ] && exit 0 for dir do @@ -257,25 +262,32 @@ then echo "$dir" fi done - exit 0 else [ "$nArgs" -eq 1 ] || usage + # general error, eg file not found + exitCode=2 + for dir do if [ -f "$dir/$fileName" ] then - [ "$quietOpt" = true ] || echo "$dir/$fileName" - exit 0 + exitCode=0 + if [ "$optQuiet" = true ] + then + break + else + echo "$dir/$fileName" + [ "$optAll" = true ] || break + fi fi done fi -# general error, eg file not found -exit 2 +exit $exitCode #------------------------------------------------------------------------------ -- GitLab