#!/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"