From 2c57c36abda4ac19e7e44614efca72d4e92e955f Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 8 Jul 2026 16:47:58 +0200 Subject: [PATCH] fix(deploy): server-update.sh re-exec nach git pull (Self-Edit-Falle) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Skript zog sich per pull selbst neu, waehrend die alte Version noch lief → Health-Check nutzte alten Code. Nach pull jetzt exec der frischen Version (Marker _SU_REEXEC verhindert Doppel-Pull). Co-Authored-By: Claude Opus 4.8 --- server-update.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/server-update.sh b/server-update.sh index 171999f..334c292 100755 --- a/server-update.sh +++ b/server-update.sh @@ -35,11 +35,17 @@ cd "$REMOTE" git config --global --add safe.directory "$REMOTE" 2>/dev/null || true # ── 1. Repo aktualisieren ───────────────────────────────────────────────────── -log "git pull --ff-only origin main" -if ! git pull --ff-only origin main; then - die "git pull fehlgeschlagen. Arbeitsbaum sauber? ('git status' prüfen, ggf. 'git stash')." +# Guard gegen "laufendes Skript editiert sich selbst": zuerst nur pullen, dann +# die frisch gezogene Version neu starten (Marker verhindert Doppel-Pull). +if [[ -z "${_SU_REEXEC:-}" ]]; then + log "git pull --ff-only origin main" + if ! git pull --ff-only origin main; then + die "git pull fehlgeschlagen. Arbeitsbaum sauber? ('git status' prüfen, ggf. 'git stash')." + fi + log "Jetzt auf: $(git log --oneline -1)" + export _SU_REEXEC=1 + exec bash "$REMOTE/server-update.sh" "$@" # frische Version übernimmt ab hier fi -log "Jetzt auf: $(git log --oneline -1)" # ── 2. Migration ────────────────────────────────────────────────────────────── if $DO_MIGRATE; then