#!/bin/bash

# Schnelles Update-Script für SingleChat
# Kopiert nur geänderte Server-Dateien und baut den Client neu

set -e

SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TARGET_DIR="/opt/ypchat"
USER="www-data"
GROUP="www-data"

echo "=========================================="
echo "SingleChat Quick Update"
echo "=========================================="

# Prüfe ob als root ausgeführt
if [ "$EUID" -ne 0 ]; then 
    echo "FEHLER: Dieses Skript muss als root ausgeführt werden!"
    echo "Bitte führe aus: sudo ./quick-update.sh"
    exit 1
fi

# Kopiere Server-Dateien
echo "Kopiere Server-Dateien..."
cp "$SOURCE_DIR/server/routes.js" "$TARGET_DIR/server/"
cp "$SOURCE_DIR/server/broadcast.js" "$TARGET_DIR/server/"
cp "$SOURCE_DIR/server/index.js" "$TARGET_DIR/server/" 2>/dev/null || echo "Hinweis: index.js nicht kopiert (falls unverändert)"
chown -R $USER:$GROUP "$TARGET_DIR/server"

echo "✓ Server-Dateien kopiert"

# Erstelle tmp und logs Verzeichnisse
echo "Erstelle tmp und logs Verzeichnisse..."
mkdir -p "$TARGET_DIR/tmp" "$TARGET_DIR/logs"
chown -R $USER:$GROUP "$TARGET_DIR/tmp" "$TARGET_DIR/logs"
echo "✓ Verzeichnisse erstellt"

# Baue Client neu
echo ""
echo "Baue Client neu..."
cd "$SOURCE_DIR"
npm run build

if [ $? -ne 0 ]; then
    echo "FEHLER: Build fehlgeschlagen!"
    exit 1
fi

echo "✓ Client gebaut"

# Kopiere gebaute Client-Dateien
echo ""
echo "Kopiere gebaute Client-Dateien..."
if [ -d "$TARGET_DIR/docroot/dist" ]; then
    rm -rf "$TARGET_DIR/docroot/dist"
fi
cp -r "$SOURCE_DIR/client/dist" "$TARGET_DIR/docroot/"
chown -R $USER:$GROUP "$TARGET_DIR/docroot/dist"

echo "✓ Client-Dateien kopiert"

# Installiere multer falls nötig
echo ""
echo "Prüfe Dependencies..."
cd "$TARGET_DIR"
NPM_CACHE_DIR="$TARGET_DIR/.npm-cache"
sudo -u $USER bash -c "cd '$TARGET_DIR' && HOME='$TARGET_DIR' npm config set cache '$NPM_CACHE_DIR' && npm install multer --save" 2>/dev/null || echo "multer bereits installiert"

echo ""
echo "=========================================="
echo "Update abgeschlossen!"
echo "=========================================="
echo ""
echo "Starte Service neu mit:"
echo "  sudo systemctl restart ypchat"
echo "  sudo systemctl status ypchat"
echo ""

