use portable sed -i.bak in configure and version scripts from @parasew
What changed, and why it matters
This commit is a build-script portability cleanup. It replaces macOS-specific and Linux-specific ways of running the `sed` text-editing tool with a single cross-platform approach that works on both systems. There is no security-relevant change here.
No security action needed. Treat as a normal build/maintenance improvement.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch removes uname branching for BSD/macOS sed -i '' versus GNU/Linux sed -i and instead uses the portable sed -i.bak form, deleting the generated .bak files afterward. It also changes one shebang from #!/bin/bash to #!/usr/bin/env bash. These are shell-script robustness/portability changes only.
Changed components
scripts/app_config/configure_stack_duo.shscripts/app_config/configure_stack_wallet.shscripts/app_config/platforms/macos/platform_config.shscripts/app_config/shared/update_version.shInspect captured patch +30 / −30
diff --git a/scripts/app_config/configure_stack_duo.sh b/scripts/app_config/configure_stack_duo.sh
index 502e1a0..7d6bae0 100755
--- a/scripts/app_config/configure_stack_duo.sh
+++ b/scripts/app_config/configure_stack_duo.sh
@@ -14,14 +14,11 @@ NEW_PUBSPEC_NAME="stackduo"
PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml"
# String replacements.
-if [[ "$(uname)" == 'Darwin' ]]; then
- # macos specific sed
- sed -i '' "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}"
- sed -i '' "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}"
-else
- sed -i "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}"
- sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}"
-fi
+sed -i.bak \
+ -e "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" \
+ -e "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" \
+ "${PUBSPEC_FILE}"
+rm -f "${PUBSPEC_FILE}.bak"
dart "${APP_PROJECT_ROOT_DIR}/tool/process_pubspec_deps.dart" \
"${PUBSPEC_FILE}" \
diff --git a/scripts/app_config/configure_stack_wallet.sh b/scripts/app_config/configure_stack_wallet.sh
index 03d9562..bf3d6c6 100755
--- a/scripts/app_config/configure_stack_wallet.sh
+++ b/scripts/app_config/configure_stack_wallet.sh
@@ -14,14 +14,11 @@ NEW_PUBSPEC_NAME="stackwallet"
PUBSPEC_FILE="${APP_PROJECT_ROOT_DIR}/pubspec.yaml"
# String replacements.
-if [[ "$(uname)" == 'Darwin' ]]; then
- # macos specific sed
- sed -i '' "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}"
- sed -i '' "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}"
-else
- sed -i "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" "${PUBSPEC_FILE}"
- sed -i "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" "${PUBSPEC_FILE}"
-fi
+sed -i.bak \
+ -e "s/name: PLACEHOLDER/name: ${NEW_PUBSPEC_NAME}/g" \
+ -e "s/description: PLACEHOLDER/description: ${NEW_NAME}/g" \
+ "${PUBSPEC_FILE}"
+rm -f "${PUBSPEC_FILE}.bak"
dart "${APP_PROJECT_ROOT_DIR}/tool/process_pubspec_deps.dart" \
"${PUBSPEC_FILE}" \
diff --git a/scripts/app_config/platforms/macos/platform_config.sh b/scripts/app_config/platforms/macos/platform_config.sh
index c54ba32..dd71bc1 100755
--- a/scripts/app_config/platforms/macos/platform_config.sh
+++ b/scripts/app_config/platforms/macos/platform_config.sh
@@ -13,8 +13,17 @@ for (( i=0; i<=2; i++ )); do
done
# Configure macOS for Duo.
-sed -i '' "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_0}"
-sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_0}"
-sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_1}"
-sed -i '' "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_2}"
-sed -i '' "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_2}"
+sed -i.bak \
+ -e "s/${APP_ID_PLACEHOLDER_CAMEL}/${NEW_APP_ID_CAMEL}/g" \
+ -e "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" \
+ "${APP_PROJECT_ROOT_DIR}/${MAC_TF_0}"
+rm -f "${APP_PROJECT_ROOT_DIR}/${MAC_TF_0}.bak"
+
+sed -i.bak "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" "${APP_PROJECT_ROOT_DIR}/${MAC_TF_1}"
+rm -f "${APP_PROJECT_ROOT_DIR}/${MAC_TF_1}.bak"
+
+sed -i.bak \
+ -e "s/${APP_NAME_PLACEHOLDER}/${NEW_NAME}/g" \
+ -e "s/${APP_ID_PLACEHOLDER_SNAKE}/${NEW_APP_ID_SNAKE}/g" \
+ "${APP_PROJECT_ROOT_DIR}/${MAC_TF_2}"
+rm -f "${APP_PROJECT_ROOT_DIR}/${MAC_TF_2}.bak"
diff --git a/scripts/app_config/shared/update_version.sh b/scripts/app_config/shared/update_version.sh
index d056b9b..11c1cbd 100755
--- a/scripts/app_config/shared/update_version.sh
+++ b/scripts/app_config/shared/update_version.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
set -x -e
@@ -34,13 +34,10 @@ if [ ! -f "$PUBSPEC_FILE" ]; then
exit 1
fi
-if [[ "$(uname)" == 'Darwin' ]]; then
- # macos specific sed
- sed -i '' "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}"
- sed -i '' "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}"
-else
- sed -i "s/PLACEHOLDER_V/$VERSION/g" "${PUBSPEC_FILE}"
- sed -i "s/PLACEHOLDER_B/$BUILD_NUMBER/g" "${PUBSPEC_FILE}"
-fi
+sed -i.bak \
+ -e "s/PLACEHOLDER_V/$VERSION/g" \
+ -e "s/PLACEHOLDER_B/$BUILD_NUMBER/g" \
+ "${PUBSPEC_FILE}"
+rm -f "${PUBSPEC_FILE}.bak"
echo "Updated $PUBSPEC_FILE with version: $VERSION and build number: $BUILD_NUMBER"
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.