#!/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] [BRIDGE-ARGS]" 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 "Bridge-Argumente (nach --run):" echo " -d, --debug Debug-Logging aktivieren (zeigt Nachrichten-Erkennung)" echo " -c FILE Eigene Config-Datei nutzen" echo " --test Test-Modus (kein Heartbeat)" 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" echo " ./start_venv.sh --run --debug # Auch Debug" echo " ./start_venv.sh --run -c my.yaml # Eigene Config" ;; *) 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