#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)" VENV_DIR="$PROJECT_DIR/.venv" MAIN="$PROJECT_DIR/main.py" LOG_FILE="$PROJECT_DIR/debug.log" if [[ ! -x "$VENV_DIR/bin/python3" ]]; then echo "ERROR: Virtual environment not found." echo "Run:" echo " ./scripts/build.sh" exit 1 fi if [[ ! -f "$MAIN" ]]; then echo "ERROR: main.py not found:" echo " $MAIN" exit 1 fi cd "$PROJECT_DIR" if systemctl is-active --quiet car-ui.service; then echo "ERROR: car-ui.service is already running." echo echo "Stop it before running source code directly:" echo " sudo systemctl stop car-ui.service" exit 1 fi if systemctl is-active --quiet graphical.target; then # Desktop mode export DISPLAY="${DISPLAY:-:0}" echo "==> Starting Car UI (Desktop)" echo " DISPLAY=$DISPLAY" else # Console / Car mode export QT_QPA_PLATFORM=eglfs echo "==> Starting Car UI (EGLFS)" echo " QT_QPA_PLATFORM=$QT_QPA_PLATFORM" fi echo " Python: $VENV_DIR/bin/python3" echo "$VENV_DIR/bin/python3" "$MAIN" 2>&1 | tee "$LOG_FILE"