Merge pull request 'Fix: update.sh vor Selbstmodifikation während der Ausführung schützen' (#5) from fds2610-bot/FSCash:main into main
Reviewed-on: https://codeberg.org/fds2610/FSCash/pulls/5
This commit is contained in:
commit
5830fd85cb
1 changed files with 70 additions and 59 deletions
17
update.sh
17
update.sh
|
|
@ -12,13 +12,18 @@
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Die gesamte Logik steckt bewusst in einer Funktion, die erst ganz am Ende
|
||||||
|
# der Datei aufgerufen wird: Bash liest eine Funktionsdefinition komplett ein,
|
||||||
|
# bevor sie ausgeführt wird. Würde der Skriptkörper stattdessen direkt (ohne
|
||||||
|
# Funktion) ausgeführt, könnte der "git pull" in Schritt 2 die Datei auf der
|
||||||
|
# Festplatte mitten in der Ausführung verändern - Bash liest dann ab diesem
|
||||||
|
# Punkt inkonsistente/veraltete Zeilen nach und das Skript verhält sich
|
||||||
|
# unvorhersehbar (genau das ist ohne dieses main()-Pattern schon passiert).
|
||||||
|
main() {
|
||||||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
WEBROOT="${WEBROOT:-/var/www/html}"
|
WEBROOT="${WEBROOT:-/var/www/html}"
|
||||||
CONFIG_FILE="${CONFIG_FILE:-$WEBROOT/config.php}"
|
CONFIG_FILE="${CONFIG_FILE:-$WEBROOT/config.php}"
|
||||||
|
|
||||||
log() { echo "==> $*"; }
|
|
||||||
fail() { echo "FEHLER: $*" >&2; exit 1; }
|
|
||||||
|
|
||||||
cd "$PROJECT_DIR"
|
cd "$PROJECT_DIR"
|
||||||
|
|
||||||
command -v php >/dev/null 2>&1 || fail "php ist nicht installiert bzw. nicht im PATH."
|
command -v php >/dev/null 2>&1 || fail "php ist nicht installiert bzw. nicht im PATH."
|
||||||
|
|
@ -75,3 +80,9 @@ if [ -d migrations ] && [ -f migrations/run_migrations.php ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log "Update abgeschlossen."
|
log "Update abgeschlossen."
|
||||||
|
}
|
||||||
|
|
||||||
|
log() { echo "==> $*"; }
|
||||||
|
fail() { echo "FEHLER: $*" >&2; exit 1; }
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue