From 6255006cad0aff20e8895440721a9ea5138112be Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Sat, 30 May 2026 10:14:01 +0200 Subject: [PATCH] feat(deploy): clean Ctrl+C handler kills background xcodebuild Without this, Ctrl+C would kill deploy.sh but leave xcodebuild running as orphan, eating CPU and locking DerivedData. --- apps/rebreak-native/deploy.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apps/rebreak-native/deploy.sh b/apps/rebreak-native/deploy.sh index 3f8884b..b9adf4b 100755 --- a/apps/rebreak-native/deploy.sh +++ b/apps/rebreak-native/deploy.sh @@ -54,6 +54,23 @@ set -euo pipefail # ERR-Trap: zeigt die exakte Zeile + Command der set -e ausgelöst hat trap 'rc=$?; echo "" >&2; echo "✗ deploy.sh aborted (rc=$rc)" >&2; echo " line $LINENO: $BASH_COMMAND" >&2; echo " call stack:" >&2; for ((i=0;i<${#FUNCNAME[@]};i++)); do echo " #$i ${FUNCNAME[$i]:-main} (${BASH_SOURCE[$i]}:${BASH_LINENO[$i]})" >&2; done' ERR +# Ctrl+C / SIGTERM: kill background children (xcodebuild etc.) cleanly +cleanup_children() { + local jobs_pids + jobs_pids=$(jobs -p 2>/dev/null || true) + if [[ -n "$jobs_pids" ]]; then + echo "" >&2 + echo "⚠ Abbruch — beende laufende Build-Prozesse..." >&2 + # shellcheck disable=SC2086 + kill $jobs_pids 2>/dev/null || true + sleep 0.5 + # shellcheck disable=SC2086 + kill -9 $jobs_pids 2>/dev/null || true + fi + exit 130 +} +trap cleanup_children INT TERM + SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" APP_CONFIG="$SCRIPT_DIR/app.config.ts" PACKAGE_JSON="$SCRIPT_DIR/package.json"