MiniLlama/deploy.sh

60 lines
1.6 KiB
Bash
Raw Normal View History

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