Projektarbeit-MYP/packages/rollback-to-current.sh

70 lines
2.4 KiB
Bash
Executable File

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