#!/usr/bin/env bash set -euo pipefail PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" VENV_PYTHON="${PROJECT_DIR}/.venv/bin/python" CONFIG_TEMPLATE="${PROJECT_DIR}/config/config.example.yaml" CONFIG_PATH="${PROJECT_DIR}/config/local.yaml" LOG_DIR="${PROJECT_DIR}/logs" CAMERA_ID="${CAMERA_ID:-store_cam_01}" RTSP_URL="${RTSP_URL:-rtsp://user:password@camera-ip:554/h264/ch1/main/av_stream}" EVENT_SINK_PATH="${EVENT_SINK_PATH:-logs/events.jsonl}" PREPARE_ONLY=0 if [[ "${1:-}" == "--prepare-only" ]]; then PREPARE_ONLY=1 shift fi if [[ ! -x "${VENV_PYTHON}" ]]; then echo "Virtual environment is missing. Run scripts/install.sh first." >&2 exit 1 fi if [[ "${RTSP_URL}" == "rtsp://user:password@camera-ip:554/h264/ch1/main/av_stream" ]]; then echo "Please edit scripts/run.sh and set RTSP_URL before starting." >&2 exit 1 fi mkdir -p "${LOG_DIR}" cp "${CONFIG_TEMPLATE}" "${CONFIG_PATH}" sed -i.bak \ -e "s|^camera_id: .*|camera_id: ${CAMERA_ID}|" \ -e "s|^ rtsp_url: .*| rtsp_url: ${RTSP_URL}|" \ -e "s|^ path: .*| path: ${EVENT_SINK_PATH}|" \ "${CONFIG_PATH}" rm -f "${CONFIG_PATH}.bak" if [[ "${PREPARE_ONLY}" -eq 1 ]]; then echo "Prepared config at ${CONFIG_PATH}" exit 0 fi exec "${VENV_PYTHON}" -m app.main --config "${CONFIG_PATH}" "$@"