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