From 4db5512b57c7151427e6daca4b1904ac543ff195 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Mon, 31 Mar 2025 09:55:17 +0200 Subject: [PATCH] Erstelle Skripte zur Wiederherstellung und Installation des Frontends von Torben --- README.Frontend.md | 79 +++++++++++++++++++++++++++++ fix-frontend-install.sh | 42 +++++++++++++++ packages/install-torben-frontend.sh | 66 ++++++++++++++++++++++++ packages/restore-torben-frontend.sh | 72 ++++++++++++++++++++++++++ packages/rollback-to-current.sh | 70 +++++++++++++++++++++++++ 5 files changed, 329 insertions(+) create mode 100644 README.Frontend.md create mode 100755 fix-frontend-install.sh create mode 100755 packages/install-torben-frontend.sh create mode 100755 packages/restore-torben-frontend.sh create mode 100755 packages/rollback-to-current.sh diff --git a/README.Frontend.md b/README.Frontend.md new file mode 100644 index 0000000..e8720ef --- /dev/null +++ b/README.Frontend.md @@ -0,0 +1,79 @@ +# Frontend-Wiederherstellung und Installation + +Diese Anleitung erklärt, wie du das Frontend auf den Stand von Torbens letztem Commit zurücksetzen und installieren kannst. + +## Vorhandene Skripte + +Es wurden drei Skripte erstellt, um die Wiederherstellung des Frontends zu erleichtern: + +1. `fix-frontend-install.sh` - Master-Skript, das beide unten genannten Skripte ausführt +2. `packages/restore-torben-frontend.sh` - Setzt das Frontend auf Torbens letzten Commit zurück +3. `packages/install-torben-frontend.sh` - Installiert die Abhängigkeiten des wiederhergestellten Frontends + +## Schnelle Lösung + +Für die schnellste Lösung führe einfach das Master-Skript aus: + +```bash +chmod +x fix-frontend-install.sh +./fix-frontend-install.sh +``` + +Das Skript wird: +1. Das aktuelle Frontend-Verzeichnis sichern (optional) +2. Das Frontend auf Torbens letzten Commit (27. Mai 2024) zurücksetzen +3. Die Änderungen committen (optional) +4. Die Frontend-Abhängigkeiten installieren +5. Das Frontend bauen, um die Installation zu verifizieren + +## Manuelle Schritte + +Wenn du die Schritte manuell ausführen möchtest: + +### 1. Frontend zurücksetzen + +```bash +chmod +x packages/restore-torben-frontend.sh +./packages/restore-torben-frontend.sh +``` + +### 2. Frontend installieren + +```bash +chmod +x packages/install-torben-frontend.sh +./packages/install-torben-frontend.sh +``` + +## Das System starten + +### Frontend starten + +```bash +cd packages/reservation-platform +pnpm dev +``` + +Das Frontend ist dann unter http://localhost:3000 erreichbar. + +### Backend starten + +```bash +cd backend +source venv/bin/activate +python app.py +``` + +Das Backend läuft dann auf http://localhost:5000. + +### Backend-Autostart konfigurieren + +Für den automatischen Start des Backends beim Hochfahren: + +```bash +sudo ./backend/autostart-backend.sh +``` + +## Bekannte Probleme + +- Wenn beim Frontend-Start Fehler auftreten, überprüfe die .env-Datei in packages/reservation-platform/ +- Stelle sicher, dass das Backend erreichbar ist unter der URL, die in NEXT_PUBLIC_API_URL konfiguriert ist \ No newline at end of file diff --git a/fix-frontend-install.sh b/fix-frontend-install.sh new file mode 100755 index 0000000..20e3bf6 --- /dev/null +++ b/fix-frontend-install.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Master-Skript zur Wiederherstellung und Installation des Frontends +# Dieses Skript führt die nötigen Schritte aus, um auf Torbens Frontend zurückzukehren + +set -e # Beende das Skript bei Fehlern + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +LOG_FILE="$SCRIPT_DIR/frontend-fix.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 Frontend-Wiederherstellung und Installation" + +# Stelle sicher, dass die Skripte ausführbar sind +chmod +x "$SCRIPT_DIR/packages/restore-torben-frontend.sh" +chmod +x "$SCRIPT_DIR/packages/install-torben-frontend.sh" + +# Führe das Wiederherstellungsskript aus +log "Führe Wiederherstellungsskript aus..." +"$SCRIPT_DIR/packages/restore-torben-frontend.sh" + +# Führe das Installationsskript aus +log "Führe Installationsskript aus..." +"$SCRIPT_DIR/packages/install-torben-frontend.sh" + +log "Der Wiederherstellungs- und Installationsprozess ist abgeschlossen." +log "" +log "Um das Frontend zu starten:" +log " cd $SCRIPT_DIR/packages/reservation-platform && pnpm dev" +log "" +log "Um das Backend zu starten:" +log " cd $SCRIPT_DIR/backend && source venv/bin/activate && python app.py" +log "" +log "Um das Backend automatisch beim Systemstart zu starten, führe aus (als root):" +log " sudo $SCRIPT_DIR/backend/autostart-backend.sh" \ No newline at end of file diff --git a/packages/install-torben-frontend.sh b/packages/install-torben-frontend.sh new file mode 100755 index 0000000..6adab68 --- /dev/null +++ b/packages/install-torben-frontend.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# Frontend-Installationsskript für Torbens Version +# Installiert und konfiguriert das Frontend auf der Basis von Torbens Code + +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-install.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 Installation des Torben-Frontends" + +# Überprüfe, ob das Verzeichnis existiert +if [ ! -d "$FRONTEND_DIR" ]; then + log "FEHLER: Das Frontend-Verzeichnis existiert nicht. Führe zuerst restore-torben-frontend.sh aus." + exit 1 +fi + +# Wechsle ins Frontend-Verzeichnis +cd "$FRONTEND_DIR" +log "Arbeite im Verzeichnis: $FRONTEND_DIR" + +# Erstelle .env-Datei, falls sie nicht existiert +if [ ! -f ".env" ]; then + log "Erstelle .env-Datei aus .env.example" + if [ -f ".env.example" ]; then + cp .env.example .env + + # Setze Backend-URL für lokale Entwicklung + echo "# Konfiguriert für lokales Backend" >> .env + echo "NEXT_PUBLIC_API_URL=http://localhost:5000" >> .env + + log ".env-Datei erstellt und konfiguriert" + else + log "WARNUNG: .env.example nicht gefunden, erstelle minimale .env" + echo "NEXT_PUBLIC_API_URL=http://localhost:5000" > .env + fi +fi + +# Installiere Abhängigkeiten +log "Installiere Frontend-Abhängigkeiten mit pnpm" +if command -v pnpm &> /dev/null; then + pnpm install 2>&1 | tee -a "$LOG_FILE" +else + log "FEHLER: pnpm ist nicht installiert. Bitte installiere pnpm mit 'npm install -g pnpm'" + exit 1 +fi + +# Baue das Projekt, um zu prüfen, ob alles funktioniert +log "Baue das Frontend, um die Installation zu verifizieren" +pnpm build 2>&1 | tee -a "$LOG_FILE" + +log "Installation abgeschlossen!" +log "" +log "Starte das Frontend mit: cd $FRONTEND_DIR && pnpm dev" +log "Das Frontend wird dann verfügbar sein unter: http://localhost:3000" +log "" +log "Stelle sicher, dass das Backend läuft mit: cd $SCRIPT_DIR/../backend && source venv/bin/activate && python app.py" \ No newline at end of file diff --git a/packages/restore-torben-frontend.sh b/packages/restore-torben-frontend.sh new file mode 100755 index 0000000..a055eb6 --- /dev/null +++ b/packages/restore-torben-frontend.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# Skript zum Rückgängigmachen der aktuellen Frontend-Installation +# und Wiederherstellung des Torben-Frontends + +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-restore.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 der Wiederherstellung des Frontend-Commits von Torben" + +# Ü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 + +# Resette das Frontend auf den Torben-Commit (27. Mai 2024) +TORBEN_COMMIT="3fd586caaf131006c429b48ee89d757062d4c9a1" + +log "Resette Frontend auf Torben's Commit ($TORBEN_COMMIT)" + +# 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 Torben-Commit +log "Checkout Frontend aus dem Commit $TORBEN_COMMIT" +git -C "$SCRIPT_DIR" checkout $TORBEN_COMMIT -- reservation-platform + +log "Frontend wurde erfolgreich auf Torben's Version zurückgesetzt" + +# Erstelle einen Commit mit der Wiederherstellung, falls gewünscht +read -p "Möchtest du die Wiederherstellung 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 Stand von Torben zurück (Commit: $TORBEN_COMMIT)" + log "Änderungen wurden committet" +else + log "Änderungen wurden NICHT committet" +fi + +log "Frontend-Wiederherstellung abgeschlossen" +log "Um das Frontend zu starten, führe folgendes aus:" +log "cd $FRONTEND_DIR && pnpm install && pnpm dev" \ No newline at end of file diff --git a/packages/rollback-to-current.sh b/packages/rollback-to-current.sh new file mode 100755 index 0000000..4b94399 --- /dev/null +++ b/packages/rollback-to-current.sh @@ -0,0 +1,70 @@ +#!/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" \ No newline at end of file