From 65ad76c34c5a9903e96c0c017a2411bcd06ef074 Mon Sep 17 00:00:00 2001 From: reynold Date: Thu, 28 Aug 2025 21:19:48 +0800 Subject: [PATCH] Fix functional issues found during comprehensive testing - Fix sf-retrieve: Replace xargs with Bash parameter expansion for whitespace trimming to avoid 'unterminated quote' errors when processing comma-separated metadata types containing quotes or special characters - Fix sf-apex-run: Replace invalid JavaScript-style ternary operator with proper Bash conditional logic for code truncation display All bash scripts now work correctly with real parameter combinations against live Salesforce orgs. Testing performed against PWC-TEAM-DEV org confirmed all functionality works as documented in README.md --- sf-apex-run | 6 +++++- sf-retrieve | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/sf-apex-run b/sf-apex-run index f1396d0..f7da496 100755 --- a/sf-apex-run +++ b/sf-apex-run @@ -181,7 +181,11 @@ if [[ -n "$APEX_FILE" ]]; then echo " Lines: $(wc -l < "$APEX_FILE")" fi elif [[ -n "$APEX_CODE" ]]; then - echo " Code: ${APEX_CODE:0:50}${#APEX_CODE > 50 ? '...' : ''}" + if [[ ${#APEX_CODE} -gt 50 ]]; then + echo " Code: ${APEX_CODE:0:50}..." + else + echo " Code: $APEX_CODE" + fi fi echo diff --git a/sf-retrieve b/sf-retrieve index 59b6138..1fbb940 100755 --- a/sf-retrieve +++ b/sf-retrieve @@ -211,13 +211,17 @@ if [[ -n "$TYPES" ]]; then IFS=',' read -ra TYPES_ARR <<< "$TYPES" for TYPE in "${TYPES_ARR[@]}"; do - TYPE=$(echo "$TYPE" | xargs) # Trim whitespace + # Trim whitespace using parameter expansion instead of xargs + TYPE="${TYPE#"${TYPE%%[![:space:]]*}"}" + TYPE="${TYPE%"${TYPE##*[![:space:]]}"}" if [[ -n "$TYPE" ]]; then if [[ -n "$NAMES" ]]; then # If names are specified, add each name for this type IFS=',' read -ra NAMES_ARR <<< "$NAMES" for NAME in "${NAMES_ARR[@]}"; do - NAME=$(echo "$NAME" | xargs) # Trim whitespace + # Trim whitespace using parameter expansion instead of xargs + NAME="${NAME#"${NAME%%[![:space:]]*}"}" + NAME="${NAME%"${NAME##*[![:space:]]}"}" if [[ -n "$NAME" ]]; then CMD+=(--metadata "$TYPE:$NAME") fi