From 06f38da04b7005ebc7086a5521946f7aa4b77a14 Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Sat, 12 Nov 2022 13:40:06 -0500
Subject: [PATCH] Update util script to newer version

---
 src/utils.sh | 50 +++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 39 insertions(+), 11 deletions(-)

diff --git a/src/utils.sh b/src/utils.sh
index 8e1fb54..4e2b7dc 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
-- 
GitLab