#!/data/data/com.termux/files/usr/bin/bash # Start Android Event Bus Server # Runs on 127.0.0.1:8765 inside Termux HERMES_HOME="$HOME/.hermes" HERMES_AGENT="$HERMES_HOME/hermes-agent" PYTHON="$HERMES_AGENT/venv/bin/python" UVICORN="$HERMES_AGENT/venv/bin/uvicorn" SERVER_SCRIPT="$HERMES_HOME/event_bus/event_server.py" LOG_FILE="$HERMES_HOME/logs/event_server.log" PID_FILE="$HERMES_HOME/event_bus/event_server.pid" mkdir -p "$HERMES_HOME/event_bus" "$HERMES_HOME/logs" # Copy server script if not present or if newer version pushed if [ ! -f "$SERVER_SCRIPT" ]; then echo "[event_bus] event_server.py not found at $SERVER_SCRIPT" >&2 exit 1 fi # Check if already running if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if kill -0 "$PID" 2>/dev/null; then echo "[event_bus] Already running (pid $PID)" exit 0 fi fi echo "[event_bus] Starting event server..." cd "$HERMES_HOME/event_bus" EVENT_BUS_DB="$HERMES_HOME/event_bus/events.db" \ nohup "$UVICORN" event_server:app \ --host 127.0.0.1 \ --port 8765 \ --log-level warning \ >> "$LOG_FILE" 2>&1 & PID=$! echo $PID > "$PID_FILE" sleep 1 if kill -0 "$PID" 2>/dev/null; then echo "[event_bus] Started (pid $PID) on http://127.0.0.1:8765" else echo "[event_bus] Failed to start, check $LOG_FILE" >&2 exit 1 fi