Files

45 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd -- "$SCRIPT_DIR/.." && pwd)"
cd "$PROJECT_ROOT"
HARD_RESET="${1:-}"
echo "[info] Stoppe und entferne Container, Netzwerke, Volumes"
"$SCRIPT_DIR/compose.sh" down -v --remove-orphans
echo "[info] Entferne ungenutzte lokale Images"
docker image prune -f >/dev/null 2>&1 || true
if [[ "$HARD_RESET" == "--hard" || "$HARD_RESET" == "--hard-origin" ]]; then
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
TARGET_REF="HEAD"
if [[ "$HARD_RESET" == "--hard-origin" ]]; then
echo "[info] Versuche auf origin/main zurueckzusetzen"
git fetch origin main --quiet >/dev/null 2>&1 || true
if git rev-parse --verify origin/main >/dev/null 2>&1; then
TARGET_REF="origin/main"
else
echo "[warn] origin/main nicht verfuegbar, fallback auf HEAD"
fi
fi
if git rev-parse --verify "$TARGET_REF" >/dev/null 2>&1; then
echo "[info] Git Hard Reset: stelle Dateien auf $TARGET_REF zurueck"
git restore --source="$TARGET_REF" --staged --worktree .
else
echo "[warn] Git-Repo ohne Commit-Historie, Datei-Restore wird uebersprungen"
fi
git clean -fd
else
echo "[warn] Kein Git-Repo erkannt, Git-Reset wird uebersprungen"
fi
fi
echo "[ok] Lab wurde zurueckgesetzt"
echo "[hint] Neu starten mit: ./scripts/bootstrap.sh"