137 lines
4.6 KiB
Bash
Executable File
137 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Claude's Eyes - venv Setup & Start Script
|
|
#
|
|
# Erstellt/repariert die virtuelle Umgebung und startet die Bridge
|
|
#
|
|
# Usage:
|
|
# ./start_venv.sh # Nur venv aktivieren (für manuellen Start)
|
|
# ./start_venv.sh --run # venv aktivieren + Bridge starten
|
|
# ./start_venv.sh --reset # venv neu erstellen + Dependencies installieren
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
VENV_DIR="$SCRIPT_DIR/venv"
|
|
|
|
# Farben
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${CYAN}"
|
|
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
echo "║ Claude's Eyes - Python Bridge Setup ║"
|
|
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
echo -e "${NC}"
|
|
|
|
# Funktion: venv erstellen/reparieren
|
|
setup_venv() {
|
|
echo -e "${YELLOW}→ Erstelle virtuelle Umgebung...${NC}"
|
|
|
|
# Alte venv löschen falls kaputt
|
|
if [ -d "$VENV_DIR" ]; then
|
|
echo -e "${YELLOW} Lösche alte venv...${NC}"
|
|
rm -rf "$VENV_DIR"
|
|
fi
|
|
|
|
# Neue venv erstellen
|
|
python3 -m venv "$VENV_DIR"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}FEHLER: Konnte venv nicht erstellen!${NC}"
|
|
echo "Installiere python3-venv: sudo apt install python3-venv"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✓ venv erstellt${NC}"
|
|
|
|
# Aktivieren
|
|
source "$VENV_DIR/bin/activate"
|
|
|
|
# pip upgraden
|
|
echo -e "${YELLOW}→ Upgrade pip...${NC}"
|
|
pip install --upgrade pip
|
|
|
|
# Dependencies installieren
|
|
echo -e "${YELLOW}→ Installiere Abhängigkeiten...${NC}"
|
|
pip install -r requirements.txt
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}FEHLER: Konnte Dependencies nicht installieren!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# PyAudio separat (optional, kann fehlschlagen)
|
|
echo -e "${YELLOW}→ Versuche PyAudio zu installieren...${NC}"
|
|
pip install pyaudio 2>/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${YELLOW} PyAudio Installation fehlgeschlagen (optional)${NC}"
|
|
echo -e "${YELLOW} Für STT: sudo apt install python3-pyaudio${NC}"
|
|
else
|
|
echo -e "${GREEN}✓ PyAudio installiert${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}════════════════════════════════════════════════════════════════${NC}"
|
|
echo -e "${GREEN}✓ Setup abgeschlossen!${NC}"
|
|
echo -e "${GREEN}════════════════════════════════════════════════════════════════${NC}"
|
|
}
|
|
|
|
# Funktion: venv aktivieren
|
|
activate_venv() {
|
|
if [ ! -d "$VENV_DIR" ] || [ ! -f "$VENV_DIR/bin/activate" ]; then
|
|
echo -e "${YELLOW}venv nicht gefunden, erstelle neu...${NC}"
|
|
setup_venv
|
|
else
|
|
source "$VENV_DIR/bin/activate"
|
|
echo -e "${GREEN}✓ venv aktiviert ($(python --version))${NC}"
|
|
fi
|
|
}
|
|
|
|
# Funktion: Bridge starten
|
|
run_bridge() {
|
|
echo ""
|
|
echo -e "${CYAN}→ Starte Audio Bridge...${NC}"
|
|
echo ""
|
|
python chat_audio_bridge.py "$@"
|
|
}
|
|
|
|
# Argumente verarbeiten
|
|
case "$1" in
|
|
--reset)
|
|
setup_venv
|
|
echo ""
|
|
echo "Starte Bridge mit: ./start_venv.sh --run"
|
|
;;
|
|
--run)
|
|
activate_venv
|
|
shift # Entferne --run aus den Argumenten
|
|
run_bridge "$@"
|
|
;;
|
|
--help|-h)
|
|
echo "Usage: ./start_venv.sh [OPTION]"
|
|
echo ""
|
|
echo "Optionen:"
|
|
echo " (keine) Nur venv aktivieren (für source ./start_venv.sh)"
|
|
echo " --run venv aktivieren und Bridge starten"
|
|
echo " --reset venv komplett neu erstellen"
|
|
echo " --help Diese Hilfe anzeigen"
|
|
echo ""
|
|
echo "Beispiele:"
|
|
echo " ./start_venv.sh --reset # Nach Python-Update"
|
|
echo " ./start_venv.sh --run # Normaler Start"
|
|
echo " ./start_venv.sh --run -d # Mit Debug-Logging"
|
|
;;
|
|
*)
|
|
activate_venv
|
|
echo ""
|
|
echo -e "${CYAN}venv ist aktiv. Du kannst jetzt:${NC}"
|
|
echo " python chat_audio_bridge.py # Bridge starten"
|
|
echo " python mock_esp32.py # Mock-Server starten"
|
|
echo ""
|
|
echo -e "${YELLOW}Oder nutze: ./start_venv.sh --run${NC}"
|
|
;;
|
|
esac
|