#!/bin/bash # Skript, um das Frontend auf den aktuellen Stand im Git-Repository zurückzusetzen set -e # Beende das Skript bei Fehlern SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" FRONTEND_DIR="$SCRIPT_DIR/reservation-platform" LOG_FILE="$SCRIPT_DIR/frontend-rollback.log" # Logfunktion log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE" } # Lösche Log-Datei, falls vorhanden > "$LOG_FILE" log "Beginne mit dem Rollback des Frontends auf den aktuellen Stand im Repository" # Überprüfe, ob wir in einem Git-Repository sind if ! git -C "$SCRIPT_DIR" rev-parse --is-inside-work-tree > /dev/null 2>&1; then log "FEHLER: Das Skript muss innerhalb eines Git-Repositories ausgeführt werden" exit 1 fi # Sichere aktuelle Änderungen, falls gewünscht read -p "Möchtest du aktuelle ungespeicherte Änderungen sichern? (j/n): " backup_changes if [[ "$backup_changes" == "j" ]]; then BACKUP_DIR="$SCRIPT_DIR/../frontend-backup-$(date '+%Y%m%d-%H%M%S')" log "Erstelle Backup in $BACKUP_DIR" mkdir -p "$BACKUP_DIR" if [ -d "$FRONTEND_DIR" ]; then cp -r "$FRONTEND_DIR" "$BACKUP_DIR/" log "Frontend-Backup erstellt in $BACKUP_DIR/reservation-platform" else log "Warnung: Frontend-Verzeichnis existiert nicht, kein Backup nötig" fi fi # Hole den aktuellen Branch CURRENT_BRANCH=$(git -C "$SCRIPT_DIR" rev-parse --abbrev-ref HEAD) log "Aktueller Branch: $CURRENT_BRANCH" # Lösche ggf. vorhandenes Frontend-Verzeichnis if [ -d "$FRONTEND_DIR" ]; then log "Lösche existierendes Frontend-Verzeichnis" rm -rf "$FRONTEND_DIR" fi # Checkout das Frontend vom aktuellen Branch log "Checkout Frontend vom aktuellen Branch ($CURRENT_BRANCH)" git -C "$SCRIPT_DIR" checkout HEAD -- reservation-platform log "Frontend wurde erfolgreich auf den aktuellen Stand im Repository zurückgesetzt" # Erstelle einen Commit mit dem Rollback, falls gewünscht read -p "Möchtest du den Rollback committen? (j/n): " commit_changes if [[ "$commit_changes" == "j" ]]; then git -C "$SCRIPT_DIR" add reservation-platform git -C "$SCRIPT_DIR" commit -m "Setze Frontend auf den aktuellen Stand im Repository zurück" log "Änderungen wurden committet" else log "Änderungen wurden NICHT committet" fi log "Frontend-Rollback abgeschlossen" log "Um das Frontend zu installieren und zu starten, führe aus:" log "cd $FRONTEND_DIR && pnpm install && pnpm dev"