#!/bin/bash
# deploy.sh — MiniLlama auf einen USB-Stick deployen
# Kopiert alles inklusive Modelle (löst Symlinks auf) an ein Ziel.
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

if [ $# -lt 1 ]; then
    echo "Verwendung: $0 <ZIEL-PFAD>"
    echo ""
    echo "Beispiele:"
    echo "  $0 /media/benutzer/STICKNAME/MiniLlama"
    echo "  $0 /tmp/minillama-export"
    exit 1
fi

TARGET="$1"

echo "📦 MiniLlama deployen nach: $TARGET"
echo ""

# Zielverzeichnis vorbereiten
if [ -d "$TARGET" ]; then
    echo "⚠️  Ziel existiert bereits: $TARGET"
    read -rp "Überschreiben? (y/N): " CONFIRM
    if [ "$CONFIRM" != "y" ] && [ "$CONFIRM" != "Y" ]; then
        echo "Abgebrochen."
        exit 1
    fi
    rm -rf "$TARGET"
fi

mkdir -p "$TARGET"

echo "📁 Kopiere Struktur (ohne models)..."
# Nur Struktur + Dateien ohne models kopieren (Modelle kommen separat mit Auflösung)
rsync -a --exclude='/models/' "$SCRIPT_DIR/" "$TARGET/" 2>/dev/null || \
    cp -r "$SCRIPT_DIR/bin" "$SCRIPT_DIR/start.sh" "$SCRIPT_DIR/start.bat" "$SCRIPT_DIR/README.md" "$TARGET/"

mkdir -p "$TARGET/models"

echo "📦 Kopiere Modelle (löst Symlinks auf)..."
MODEL_COUNT=0
for f in "$SCRIPT_DIR"/models/*.gguf; do
    if [ -f "$f" ] || [ -L "$f" ]; then
        NAME=$(basename "$f")
        echo "   → $NAME"
        cp -L "$f" "$TARGET/models/$NAME"
        MODEL_COUNT=$((MODEL_COUNT + 1))
    fi
done

echo ""
echo "✅ Fertig! $MODEL_COUNT Modelle kopiert nach:"
echo "   $TARGET"
echo ""
echo "Jetzt vom Stick starten:"
echo "   Linux:   $TARGET/start.sh"
echo "   Windows: $TARGET\\start.bat"
