ENH: add '-all' option to foamEtcFile for similar results as findEtcFiles

This commit is contained in:
Mark Olesen
2011-07-14 11:26:42 +02:00
parent 6c9dacd229
commit d8a812ced1

View File

@ -44,7 +44,7 @@
# #
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
usage() { usage() {
[ "${quietOpt:-$silentOpt}" = true ] && exit 1 [ "${optQuiet:-$optSilent}" = true ] && exit 1
exec 1>&2 exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done while [ "$#" -ge 1 ]; do echo "$1"; shift; done
@ -53,6 +53,7 @@ usage() {
Usage: ${0##*/} [OPTION] fileName Usage: ${0##*/} [OPTION] fileName
${0##*/} [OPTION] -list ${0##*/} [OPTION] -list
options: options:
-all return all files (otherwise stop after the first match)
-list list the directories to be searched -list list the directories to be searched
-mode <mode> any combination of u(user), g(group), o(other) -mode <mode> any combination of u(user), g(group), o(other)
-prefix <dir> specify an alternative installation prefix -prefix <dir> specify an alternative installation prefix
@ -129,7 +130,7 @@ esac
# default mode is 'ugo' # default mode is 'ugo'
mode=ugo mode=ugo
unset listOpt quietOpt silentOpt unset optAll optList optQuiet optSilent
# parse options # parse options
while [ "$#" -gt 0 ] while [ "$#" -gt 0 ]
@ -138,8 +139,11 @@ do
-h | -help) -h | -help)
usage usage
;; ;;
-a | -all)
optAll=true
;;
-l | -list) -l | -list)
listOpt=true optList=true
;; ;;
-m | -mode) -m | -mode)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument" [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
@ -161,10 +165,10 @@ do
shift shift
;; ;;
-q | -quiet) -q | -quiet)
quietOpt=true optQuiet=true
;; ;;
-s | -silent) -s | -silent)
silentOpt=true optSilent=true
;; ;;
-v | -version) -v | -version)
[ "$#" -ge 2 ] || usage "'$1' option requires an argument" [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
@ -239,14 +243,15 @@ set -- $dirList
# The main routine # The main routine
# #
if [ "$listOpt" = true ] exitCode=0
if [ "$optList" = true ]
then then
# list directories, or potential file locations # list directories, or potential file locations
[ "$nArgs" -le 1 ] || usage [ "$nArgs" -le 1 ] || usage
# a silly combination, but -quiet does have precedence # a silly combination, but -quiet does have precedence
[ "$quietOpt" = true ] && exit 0 [ "$optQuiet" = true ] && exit 0
for dir for dir
do do
@ -257,25 +262,32 @@ then
echo "$dir" echo "$dir"
fi fi
done done
exit 0
else else
[ "$nArgs" -eq 1 ] || usage [ "$nArgs" -eq 1 ] || usage
# general error, eg file not found
exitCode=2
for dir for dir
do do
if [ -f "$dir/$fileName" ] if [ -f "$dir/$fileName" ]
then then
[ "$quietOpt" = true ] || echo "$dir/$fileName" exitCode=0
exit 0 if [ "$optQuiet" = true ]
then
break
else
echo "$dir/$fileName"
[ "$optAll" = true ] || break
fi
fi fi
done done
fi fi
# general error, eg file not found exit $exitCode
exit 2
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------