#!/usr/bin/env bash set -euo pipefail HOST="${LOCAL_CV_HOST:-127.0.0.1}" PORT="${LOCAL_CV_PORT:-8091}" MODEL="${LOCAL_CV_YOLO_MODEL:-yolov8n.pt}" BOOTSTRAP_MODE="${LOCAL_CV_BOOTSTRAP_MODE:-auto}" if [ ! -d ".venv-local-cv" ]; then python3 -m venv .venv-local-cv fi . .venv-local-cv/bin/activate if [ "${BOOTSTRAP_MODE}" = "always" ]; then python -m pip install --upgrade pip python -m pip install -r tools/local_cv_requirements.txt elif [ "${BOOTSTRAP_MODE}" = "auto" ] && [ ! -x ".venv-local-cv/bin/uvicorn" ]; then python -m pip install --upgrade pip python -m pip install -r tools/local_cv_requirements.txt else echo "Local CV bootstrap skipped; using existing virtualenv." fi if [ "${LOCAL_CV_DISABLE_YOLO:-false}" != "true" ]; then LOCAL_CV_YOLO_MODEL="$MODEL" python -c "import os; from ultralytics import YOLO; YOLO(os.environ['LOCAL_CV_YOLO_MODEL'])" fi if [ "${LOCAL_CV_PRELOAD_ONLY:-false}" = "true" ]; then echo "Local CV dependencies and model are ready." exit 0 fi exec uvicorn tools.local_cv_worker:app --host "$HOST" --port "$PORT"