From f5c4befee7061818f698753d048ec0906da16868 Mon Sep 17 00:00:00 2001 From: Alain Reguera Delgado Date: Feb 18 2011 23:04:36 +0000 Subject: Update cli_getFilesList.sh: - The function cli_getFilesList no longer updates the FILES variable. Instead, it outputs its values directly when called. - So, from now on when you need to use the function cli_getFilesList, the correct way of doing so is using local definitions. For example, the following definition is used to retrive all scalable vector graphics from the path provided and controlled by the regular expression passed in the `--filter' option: local FILES=$(cli_getFilesList "${ACTIONVAL}" "${FLAG_FILTER}.*\.(svgz|svg)") If the `--filter' option is not passed then the default value for it is assumed which is `.+'. This make to match all scalable vector graphics with no exception. If you need to retrive files from another place but that passed in ${ACTIONVAL}, then you can change the variable to what ever variable the path you want to use as base location is contain in. --- diff --git a/Scripts/Bash/Functions/cli_getFilesList.sh b/Scripts/Bash/Functions/cli_getFilesList.sh index edb65d4..94a4960 100755 --- a/Scripts/Bash/Functions/cli_getFilesList.sh +++ b/Scripts/Bash/Functions/cli_getFilesList.sh @@ -27,6 +27,8 @@ function cli_getFilesList { local LOCATION='' + local FILTER='' + local FILES='' # If first argument is provided to cli_getFilesList, use it as # default location. Otherwise, if first argument is not provided, @@ -37,32 +39,34 @@ function cli_getFilesList { LOCATION="$ACTIONVAL" fi - # Define regular expression (FLAG_FILTER) local variable, using regular - # expression (FLAG_FILTER) global variable, to reduce the amount of - # characters we type in order to match find's output. When using - # regular expression with find, in order to reduce the amount - # files found, the regular expression is evaluated against the - # whole file path. This way, when the regular expression is + # If second argument is provided to cli_getFilesList, use it as + # default extension to look for files. Otherwise, if second + # argument is not provided, use flag filter instead. + if [[ "$2" != '' ]];then + FILTER="$2" + else + FILTER="$FLAG_FILTER" + fi + + # Define filter as regular expression pattern. When we use regular + # expressions with find, regular expressions are evaluated against + # the whole file path. This way, when the regular expression is # specified, we need to build it in a way that matches the whole - # path. Doing so each time we pass a `--filter' command-line - # argument may be a tedious task, so, in the sake of reducing some - # typing, we prepare the regular expression here to match the - # whole path using the regular expression provided by the user as - # pattern. - local FLAG_FILTER="^${LOCATION}/${FLAG_FILTER}$" + # path. Doing so, everytime we pass the `--filter' option in the + # command-line might be a tedious task. Instead, in the sake of + # reducing some typing, we prepare the regular expression here to + # match the whole path using the regular expression provided by + # the user as pattern. + FILTER="^${LOCATION}/${FILTER}$" # Define list of files to process. if [[ -d $LOCATION ]];then - FILES=$(find $LOCATION -regextype posix-egrep -type f -regex "${FLAG_FILTER}" | sort) + FILES=$(find $LOCATION -regextype posix-egrep -type f -regex "${FILTER}" | sort) elif [[ -f $LOCATION ]];then FILES=$LOCATION fi - # Check list of files to process. If we have an empty list of - # files, inform about it and stop script execution. - if [[ $FILES == '' ]];then - cli_printMessage "`gettext "There is no file to process."`" 'AsErrorLine' - cli_printMessage "$(caller)" 'AsToKnowMoreLine' - fi + # Output list of files. + echo "$FILES" }