#!/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 " 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"