From 59d7da2cf845ff9cd7a1c8cb76ab73d24d15516e Mon Sep 17 00:00:00 2001 From: Evert Ramos Date: Sat, 23 May 2026 22:15:38 -0300 Subject: [PATCH 1/4] fix: quote rm -rf variable and declare locals in system_safe_delete_folder Co-Authored-By: Claude Sonnet 4.6 --- system/system-safe-delete-folder.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/system-safe-delete-folder.sh b/system/system-safe-delete-folder.sh index eff0c1a..d2ebac7 100755 --- a/system/system-safe-delete-folder.sh +++ b/system/system-safe-delete-folder.sh @@ -40,7 +40,7 @@ # ---------------------------------------------------------------------- system_safe_delete_folder() { - local LOCAL_SAFE_DELETE_FOLDER LOCAL_ALLOWED_DELETE_BASE_PATH LOCAL_SAFE_DELETE_FOLDER_BASE_PATH + local LOCAL_SAFE_DELETE_FOLDER LOCAL_ALLOWED_DELETE_BASE_PATH LOCAL_SAFE_DELETE_FOLDER_BASE_PATH DELETE_USING_SUDO SKIP_ALL_VALIDATION LOCAL_SAFE_DELETE_FOLDER=${1%/} LOCAL_ALLOWED_DELETE_BASE_PATH=${2:-server} @@ -63,9 +63,9 @@ system_safe_delete_folder() [[ "$DEBUG" == true ]] && echowarning "Deleting folder '$LOCAL_SAFE_DELETE_FOLDER'" if [[ "$DELETE_USING_SUDO" == true ]]; then - sudo rm -rf $LOCAL_SAFE_DELETE_FOLDER + sudo rm -rf "$LOCAL_SAFE_DELETE_FOLDER" else - rm -rf $LOCAL_SAFE_DELETE_FOLDER + rm -rf "$LOCAL_SAFE_DELETE_FOLDER" fi return 0 From 86af9861e854caf4a47ed479e375516b81da84ac Mon Sep 17 00:00:00 2001 From: Evert Ramos Date: Sat, 23 May 2026 22:15:46 -0300 Subject: [PATCH 2/4] fix: fix assignment syntax bug and quote variables in common_create_folder Co-Authored-By: Claude Sonnet 4.6 --- common/common-create-folder.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/common-create-folder.sh b/common/common-create-folder.sh index 4b3328d..59c3b28 100755 --- a/common/common-create-folder.sh +++ b/common/common-create-folder.sh @@ -42,13 +42,13 @@ common_create_folder() [[ "$DEBUG" == true ]] && echo "Creating folder '$LOCAL_FOLDER'" # Allows 'sudo' to run this function if destination path it's not owned by the current user - [[ "$LOCAL_ALLOW_RUN_WITH_SUDO" == true ]] && ! system_check_user_folder_owner ${LOCAL_FOLDER%/*} && LOCAL_RUN_WITH_SUDO=sudo + [[ "$LOCAL_ALLOW_RUN_WITH_SUDO" == true ]] && ! system_check_user_folder_owner "${LOCAL_FOLDER%/*}" && LOCAL_RUN_WITH_SUDO=sudo - $LOCAL_RUN_WITH_SUDO mkdir -p $LOCAL_FOLDER > /dev/null 2>&1 + $LOCAL_RUN_WITH_SUDO mkdir -p "$LOCAL_FOLDER" > /dev/null 2>&1 [[ ! -d "$LOCAL_FOLDER" ]] && [[ "$LOCAL_STOP_EXECUTION_ON_ERROR" == true ]] && echoerror "The folder '$LOCAL_FOLDER' could not be created. \nCheck folder permissions." - [[ ! -d "$LOCAL_FOLDER" ]] && COMMON_CREATE_FOLDER_ERROR = true + [[ ! -d "$LOCAL_FOLDER" ]] && COMMON_CREATE_FOLDER_ERROR=true return 0 } From 9c459b79317a1a57132343246a81648cf5042c76 Mon Sep 17 00:00:00 2001 From: Evert Ramos Date: Sat, 23 May 2026 22:15:55 -0300 Subject: [PATCH 3/4] fix: quote file path variables in file_delete_local_file Co-Authored-By: Claude Sonnet 4.6 --- file/file-delete-local-file.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file/file-delete-local-file.sh b/file/file-delete-local-file.sh index 0e9afea..c56c39f 100755 --- a/file/file-delete-local-file.sh +++ b/file/file-delete-local-file.sh @@ -40,7 +40,7 @@ file_delete_local_file() [[ "$DEBUG" == true ]] && echo "Deleting file '$LOCAL_FILE'" # Checkinf the file (-f) validates if trying to delete a folder - [[ -f $LOCAL_FILE ]] && rm -f $LOCAL_FILE + [[ -f "$LOCAL_FILE" ]] && rm -f "$LOCAL_FILE" return 0 } From 679c08b80a71e8fd119286d48dc3d574a89923ca Mon Sep 17 00:00:00 2001 From: Evert Ramos Date: Sat, 23 May 2026 22:16:01 -0300 Subject: [PATCH 4/4] fix: quote path variables and escape sed patterns in file_update_file Co-Authored-By: Claude Sonnet 4.6 --- file/file-update-file.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/file/file-update-file.sh b/file/file-update-file.sh index b4d1add..64cdbe0 100755 --- a/file/file-update-file.sh +++ b/file/file-update-file.sh @@ -51,10 +51,10 @@ file_update_file() [[ $LOCAL_TO_STRING == "" || $LOCAL_TO_STRING == null ]] && echoerror "You must inform the required argument(s) to the function: '${FUNCNAME[0]}'" # Check if file exists | exit if 4th parameter is set to 'true' - [[ ! -f $LOCAL_FULL_FILE_PATH ]] && [[ "$LOCAL_STOP_EXECUTION_ON_ERROR" == true ]] && echoerror "We could not find the file '$LOCAL_FULL_FILE_PATH' in your local folder. \n Please inform the correct location and try again (function: ${FUNCNAME[0]})." + [[ ! -f "$LOCAL_FULL_FILE_PATH" ]] && [[ "$LOCAL_STOP_EXECUTION_ON_ERROR" == true ]] && echoerror "We could not find the file '$LOCAL_FULL_FILE_PATH' in your local folder. \n Please inform the correct location and try again (function: ${FUNCNAME[0]})." # Stop execution and return error if "$LOCAL_STOP_EXECUTION_ON_ERROR" is false - if [[ ! -f $LOCAL_FULL_FILE_PATH ]]; then + if [[ ! -f "$LOCAL_FULL_FILE_PATH" ]]; then echoerror "We could not find the file '$LOCAL_FULL_FILE_PATH' in your local folder. \n Please inform the correct location and try again (function: ${FUNCNAME[0]})." false FILE_UPDATE_FILE_ERROR=true return 0 @@ -64,15 +64,19 @@ file_update_file() [[ "$DEBUG" == true ]] && echoline "Replace '$LOCAL_FROM_STRING' to '$LOCAL_TO_STRING' in '$LOCAL_FULL_FILE_PATH'." # Allows 'sudo' to run this function if destination path it's not owned by the current user - [[ "$LOCAL_ALLOW_RUN_WITH_SUDO" == true ]] && ! system_check_user_folder_owner ${LOCAL_FULL_FILE_PATH%/*} && LOCAL_RUN_WITH_SUDO=sudo + [[ "$LOCAL_ALLOW_RUN_WITH_SUDO" == true ]] && ! system_check_user_folder_owner "${LOCAL_FULL_FILE_PATH%/*}" && LOCAL_RUN_WITH_SUDO=sudo - cd $(dirname $LOCAL_FULL_FILE_PATH) >/dev/null 2>&1 + local LOCAL_FROM_ESCAPED LOCAL_TO_ESCAPED + LOCAL_FROM_ESCAPED=$(printf '%s\n' "$LOCAL_FROM_STRING" | sed 's/[[\.*^$()+?{|]/\\&/g') + LOCAL_TO_ESCAPED=$(printf '%s\n' "$LOCAL_TO_STRING" | sed 's/[/&]/\\&/g') + + cd "$(dirname "$LOCAL_FULL_FILE_PATH")" >/dev/null 2>&1 if [[ "$LOCAL_UPDATE_VARIABLE_VALUE" == true ]]; then # To remove dots (.) use the line below -# $LOCAL_RUN_WITH_SUDO sed -i "/$LOCAL_FROM_STRING=/c\\$LOCAL_FROM_STRING=${LOCAL_TO_STRING//.}" $LOCAL_FULL_FILE_PATH - $LOCAL_RUN_WITH_SUDO sed -i "/$LOCAL_FROM_STRING=/c\\$LOCAL_FROM_STRING=$LOCAL_TO_STRING" $LOCAL_FULL_FILE_PATH +# $LOCAL_RUN_WITH_SUDO sed -i "/$LOCAL_FROM_ESCAPED=/c\\$LOCAL_FROM_ESCAPED=${LOCAL_TO_ESCAPED//.}" $LOCAL_FULL_FILE_PATH + $LOCAL_RUN_WITH_SUDO sed -i "/$LOCAL_FROM_ESCAPED=/c\\$LOCAL_FROM_ESCAPED=$LOCAL_TO_ESCAPED" "$LOCAL_FULL_FILE_PATH" else - $LOCAL_RUN_WITH_SUDO sed -i -e "s/$LOCAL_FROM_STRING/$LOCAL_TO_STRING/g" $LOCAL_FULL_FILE_PATH + $LOCAL_RUN_WITH_SUDO sed -i -e "s/$LOCAL_FROM_ESCAPED/$LOCAL_TO_ESCAPED/g" "$LOCAL_FULL_FILE_PATH" fi cd - > /dev/null 2>&1 }