diff --git a/src/utils.sh b/src/utils.sh index 8e1fb54b348661c7644e449654100a0349c0747e..4e2b7dccb6e6f857c28b2d68c6385de10b393259 100755 --- a/src/utils.sh +++ b/src/utils.sh @@ -6,7 +6,7 @@ # and checking current user value, and prompts of yes/no user input. # # https://git.brandon-rodriguez.com/scripts/bash/utils - # Version 1.2 + # Version 1.3.1 ## @@ -226,7 +226,7 @@ function get_absolute_path () { if [[ -f ${1} ]] then # Handle for file. - return_value="$(cd "$(dirname "$1")"; pwd -P)/$(basename "$1")" + return_value="$(cd "$(dirname "${1}")"; pwd -P)/$(basename "${1}")" elif [[ -d ${1} ]] then @@ -261,19 +261,18 @@ function get_absolute_path () { ### - # Returns name of current directory. - # If arg is passed, then returns base name of directory path, or parent directory of file path. + # If no arg is provided, returns full path of current directory. + # If arg is passed, then returns absolute path if was directory, or full path of parent directory if was file. # # Return Variable(s): return_value ## -function get_directory_name () { +function get_directory_path () { # Check number of passed function args. if [[ ${#} == 0 ]] then # No args passed. Handle for current directory. - return_value=$(pwd) - return_value=${return_value##*/} + get_absolute_path ./ # Handle for one arg. elif [[ ${#} == 1 ]] @@ -285,13 +284,11 @@ function get_directory_name () { # Handle for file. get_absolute_path ${1} return_value=${return_value%/*} - return_value=${return_value##*/} elif [[ -d ${1} ]] then # Handle for directory. get_absolute_path ${1} - return_value=${return_value##*/} else echo -e "${text_red}Passed value ( ${1} ) is not a valid file or directory.${text_reset}" @@ -300,7 +297,38 @@ function get_directory_name () { # Handle for too many args. else - echo -e "${text_red}Too many args passed. Expected one arg, received ${#}.${text_reset}" + echo -e "${text_red}Too many args passed. Expected zero or one args, received ${#}.${text_reset}" + exit 1 + fi +} + + +### + # If no arg is provided, then returns name of current directory. + # If arg is passed, then returns name of directory, or parent directory of file. + # + # Return Variable(s): return_value + ## +function get_directory_name () { + + # Check number of passed function args. + if [[ ${#} == 0 ]] + then + # No args passed. Pass current directory to parent function. + get_directory_path ./ + return_value=${return_value##*/} + + # Handle for one arg. + elif [[ ${#} == 1 ]] + then + + # Pass provided value to parent function. + get_directory_path ${1} + return_value=${return_value##*/} + + # Handle for too many args. + else + echo -e "${text_red}Too many args passed. Expected zero or one args, received ${#}.${text_reset}" exit 1 fi } @@ -492,7 +520,7 @@ function to_upper () { then # At least one arg passed. Loop through each one. return_value=() - for arg in $@ + for arg in ${@} do return_value+=( $(echo "${arg}" | tr '[:lower:]' '[:upper:]') ) done