diff --git a/components/Navigation.vue b/components/Navigation.vue index 094a5ed..fd4a258 100644 --- a/components/Navigation.vue +++ b/components/Navigation.vue @@ -76,7 +76,7 @@ /dev/null 2>&1 +# WICHTIG: Entferne public/data Dateien aus Git-Index, falls sie getrackt sind +# (Sie sollten in .gitignore sein, aber falls sie historisch getrackt wurden) +if git ls-files --error-unmatch public/data/*.csv >/dev/null 2>&1; then + echo " WARNING: public/data/*.csv Dateien sind im Git getrackt!" + echo " Entferne sie aus dem Git-Index (Dateien bleiben erhalten)..." + git rm --cached public/data/*.csv 2>/dev/null || true +fi + # 3. Install dependencies echo "" echo "3. Installing dependencies..." @@ -292,10 +300,40 @@ echo " Restored server/data from backup ($BACKUP_DIR/server-data)." # Stelle alle CSVs wieder her if ls "$BACKUP_DIR/public-data"/*.csv >/dev/null 2>&1; then mkdir -p public/data - cp -a "$BACKUP_DIR/public-data"/*.csv public/data/ - echo " Restored public/data/*.csv from backup ($BACKUP_DIR/public-data)." + + # WICHTIG: Überschreibe auch Dateien, die aus dem Git-Repository kommen + # Verwende cp mit -f (force) um sicherzustellen, dass Backup-Dateien Vorrang haben + for csv_file in "$BACKUP_DIR/public-data"/*.csv; do + filename=$(basename "$csv_file") + # Überschreibe explizit, auch wenn Datei bereits existiert + cp -f "$csv_file" "public/data/$filename" + # Stelle sicher, dass die Datei wirklich überschrieben wurde + if [ -f "public/data/$filename" ]; then + # Prüfe, ob die Datei wirklich vom Backup kommt (Größenvergleich) + backup_size=$(stat -f%z "$csv_file" 2>/dev/null || stat -c%s "$csv_file" 2>/dev/null || echo "0") + restored_size=$(stat -f%z "public/data/$filename" 2>/dev/null || stat -c%s "public/data/$filename" 2>/dev/null || echo "0") + if [ "$backup_size" = "$restored_size" ] && [ "$backup_size" != "0" ]; then + echo " ✓ Restored public/data/$filename from backup ($backup_size bytes)" + else + echo " ⚠ WARNING: public/data/$filename Größe stimmt nicht überein (Backup: $backup_size, Restored: $restored_size)" + fi + else + echo " ❌ ERROR: Konnte public/data/$filename nicht wiederherstellen!" + fi + done + + echo " ✓ All public/data/*.csv files restored from backup ($BACKUP_DIR/public-data)." + + # Zusätzliche Sicherheit: Entferne public/data Dateien aus Git-Index, falls sie getrackt sind + # (nach dem Restore, damit sie nicht beim nächsten git reset überschrieben werden) + if git ls-files --error-unmatch public/data/*.csv >/dev/null 2>&1; then + echo " WARNING: public/data/*.csv Dateien sind noch im Git getrackt!" + echo " Entferne sie aus dem Git-Index (Dateien bleiben erhalten)..." + git rm --cached public/data/*.csv 2>/dev/null || true + echo " ✓ public/data/*.csv aus Git-Index entfernt" + fi else - echo "No public CSVs to restore" + echo " No public CSVs to restore" fi # Sanity Check: users.json muss existieren und darf nicht leer sein