fix(deploy): Skript gegen sich selbst absichern - alles in main()
Ampel / ampel (push) Successful in 21s
Ampel / ampel (push) Successful in 21s
Beim Deploy am 27.08.2026 live erlebt: der `git pull` in Schritt 1 brachte eine neue Fassung von deploy.sh mit, ausgefuehrt wurde danach trotzdem die alte Logik (die Ausgabe zeigte den alten Text des Config-Sync-Schritts). Ursache: bash liest ein Skript haeppchenweise WAEHREND es laeuft. Wird die Datei mitten im Lauf ersetzt, liest bash am selben Byte-Offset im neuen Text weiter - im harmlosen Fall greift die alte Logik, im schlimmen Fall fuehrt es eine zerschnittene Zeile aus. Fix: der komplette Ablauf liegt jetzt in main(), aufgerufen als letzte Zeile. Eine Funktion wird vollstaendig geparst, bevor sie startet. Aenderungen an deploy.sh greifen damit sauber ab dem naechsten Aufruf statt mittendrin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
57492d6759
commit
a969898a16
@@ -1,6 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# ‼️ Das ganze Skript liegt in EINER Funktion — das ist Absicht, kein Stil.
|
||||
# Bash liest ein Skript haeppchenweise WAEHREND es laeuft. `git pull` unten ersetzt
|
||||
# genau diese Datei mitten im Lauf; danach liest bash am selben Byte-Offset im NEUEN
|
||||
# Text weiter und fuehrt zerschnittene Zeilen aus. Live erlebt am 27.08.2026: der Pull
|
||||
# brachte eine neue Fassung dieses Schrittes mit, ausgefuehrt wurde trotzdem die alte.
|
||||
# Eine Funktion wird komplett geparst, bevor sie startet -> der Lauf bleibt in sich
|
||||
# stimmig, und Aenderungen greifen ab dem naechsten Aufruf statt mittendrin.
|
||||
main() {
|
||||
|
||||
echo "Starte MC2 Deployment..."
|
||||
|
||||
# 1. Neuesten Code holen
|
||||
@@ -62,3 +71,6 @@ echo "Starte Backend neu..."
|
||||
systemctl --user restart mc2-gateway.service mission-control-2.service mc2-steward.service
|
||||
|
||||
echo "✅ Deployment erfolgreich abgeschlossen!"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
Reference in New Issue
Block a user