fix(reset-script): improve error handling and skip logic for git pull in reset script

This commit is contained in:
Nils-Johan Gynther
2026-05-03 11:47:25 +02:00
parent fe6fac8464
commit 6762100619
+19 -5
View File
@@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -Eeuo pipefail set -Eeuo pipefail
trap 'echo "[reset][ERROR] Rad ${LINENO}: kommando misslyckades: ${BASH_COMMAND}" >&2' ERR
# ---------------------------------------- # ----------------------------------------
# Config # Config
# ---------------------------------------- # ----------------------------------------
@@ -20,6 +22,10 @@ require_cmd() {
command -v "$1" >/dev/null 2>&1 || fail "Saknar kommando: $1" command -v "$1" >/dev/null 2>&1 || fail "Saknar kommando: $1"
} }
require_docker_compose() {
docker compose version >/dev/null 2>&1 || fail "docker compose saknas eller fungerar inte"
}
# ---------------------------------------- # ----------------------------------------
# Preflight # Preflight
# ---------------------------------------- # ----------------------------------------
@@ -28,6 +34,7 @@ require_cmd git
require_cmd grep require_cmd grep
require_cmd cut require_cmd cut
require_cmd tr require_cmd tr
require_docker_compose
cd "$APP_DIR" || fail "Kunde inte byta till katalog: $APP_DIR" cd "$APP_DIR" || fail "Kunde inte byta till katalog: $APP_DIR"
@@ -35,7 +42,6 @@ cd "$APP_DIR" || fail "Kunde inte byta till katalog: $APP_DIR"
[ -f "compose.yml" ] || fail "compose.yml saknas" [ -f "compose.yml" ] || fail "compose.yml saknas"
[ -f "compose.flutter.yml" ] || fail "compose.flutter.yml saknas" [ -f "compose.flutter.yml" ] || fail "compose.flutter.yml saknas"
[ -f "$SEED_FILE" ] || fail "$SEED_FILE saknas" [ -f "$SEED_FILE" ] || fail "$SEED_FILE saknas"
[ -d "$IMPORTER_DIR/.git" ] || fail "Importer-repot hittades inte i $IMPORTER_DIR"
# Läs DB-variabler från .env (samma stil som manuella seed-kommandon) # Läs DB-variabler från .env (samma stil som manuella seed-kommandon)
DB_PASS="$(grep '^MARIADB_ROOT_PASSWORD=' .env | cut -d '=' -f2 | tr -d '"' | tr -d "'")" DB_PASS="$(grep '^MARIADB_ROOT_PASSWORD=' .env | cut -d '=' -f2 | tr -d '"' | tr -d "'")"
@@ -54,11 +60,19 @@ read -r -p "Fortsätt? Skriv JA för att bekräfta: " CONFIRM
# ---------------------------------------- # ----------------------------------------
# Pull latest code # Pull latest code
# ---------------------------------------- # ----------------------------------------
log "Hämtar senaste kod för recipe-app" if [ "${SKIP_GIT_PULL:-0}" = "1" ]; then
git pull origin main log "SKIP_GIT_PULL=1 -> hoppar över git pull"
else
log "Hämtar senaste kod för recipe-app"
git pull origin main
log "Hämtar senaste kod för microservice-importer" if [ -d "$IMPORTER_DIR/.git" ]; then
(cd "$IMPORTER_DIR" && git pull origin main) log "Hämtar senaste kod för microservice-importer"
(cd "$IMPORTER_DIR" && git pull origin main)
else
log "Importer-repot hittades inte i $IMPORTER_DIR -> hoppar över importer git pull"
fi
fi
# ---------------------------------------- # ----------------------------------------
# Full reset + rebuild # Full reset + rebuild