#!/usr/bin/env bash set -euo pipefail TARGET_DIR="${1:?target dir required}" FRONTEND_DIR="$TARGET_DIR/frontend" CURRENT_LINK="/opt/yourpart" CURRENT_FRONTEND="$CURRENT_LINK/frontend" echo "=== YourPart Frontend Update ===" echo "Ziel: $FRONTEND_DIR" echo "NOTE: .env files will NOT be overwritten" cd "$FRONTEND_DIR" if [ -d "dist" ]; then echo "Korrigiere Berechtigungen für dist-Verzeichnis..." sudo -n chown -R "$USER:$USER" dist/ 2>/dev/null || true fi echo "Lösche alle generierten Verzeichnisse..." rm -rf dist/ rm -rf node_modules/.vite/ rm -rf node_modules/.cache/ TEMP_ENV="/tmp/yourpart-frontend-env-$$" if [ -f "$CURRENT_FRONTEND/.env" ]; then echo "Nutze bestehende .env-Datei vom Live-System für Build..." cp "$CURRENT_FRONTEND/.env" "$TEMP_ENV" cp "$TEMP_ENV" .env elif [ -f .env.production ]; then echo "Nutze .env.production für Build..." cp .env.production .env elif [ -f .env.server ]; then echo "Nutze .env.server für Build..." cp .env.server .env fi echo "Baue Frontend neu..." export VITE_API_BASE_URL="${VITE_API_BASE_URL:-https://www.your-part.de}" export VITE_DAEMON_SOCKET="${VITE_DAEMON_SOCKET:-wss://www.your-part.de:4551}" export VITE_CHAT_WS_URL="${VITE_CHAT_WS_URL:-wss://www.your-part.de:1235}" echo "VITE_API_BASE_URL=$VITE_API_BASE_URL" echo "VITE_DAEMON_SOCKET=$VITE_DAEMON_SOCKET" echo "VITE_CHAT_WS_URL=$VITE_CHAT_WS_URL" echo "Installiere Dependencies..." npm install echo "Baue Frontend..." npm run build rm -f "$TEMP_ENV" if [ -f "$FRONTEND_DIR/.env" ]; then echo "✓ Bestehende .env-Datei wurde beibehalten" else echo "⚠ Keine .env-Datei im Zielverzeichnis gefunden" fi echo "Setze Berechtigungen..." sudo -n chown -R www-data:www-data "$FRONTEND_DIR/dist" if [ -f "$FRONTEND_DIR/.env" ]; then sudo -n chown www-data:www-data "$FRONTEND_DIR/.env" sudo -n chmod 644 "$FRONTEND_DIR/.env" fi sudo -n chmod -R 755 "$FRONTEND_DIR/dist" echo "=== Frontend Update abgeschlossen! ==="