MiniLlama/deploy.sh
xray 1cfaaf4e22 initial: MiniLlama — portable LLM chat for USB stick (Windows + Linux)
llama.cpp b9936 binaries for x86_64 (Linux Ubuntu + Windows CPU)
Dynamic model selection from models/ dir
GGUF models: Gemma-4-E2B, Qwen2.5-1.5B, Qwen3.5-4B
Cross-platform start.sh / start.bat scripts
Deploy script for USB stick export
2026-07-09 10:00:25 +02:00

59 lines
1.6 KiB
Bash
Executable file

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