#!/usr/bin/env bash set -euo pipefail PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" SETUP_SCRIPT="${PROJECT_DIR}/setup_native_venv.sh" RUN_SCRIPT="${PROJECT_DIR}/scripts/run.sh" INSTALL_SERVICE_SCRIPT="${PROJECT_DIR}/scripts/install_service.sh" PROJECT_USER="${SUDO_USER:-$(id -un)}" run_privileged() { if [[ "$(id -u)" -eq 0 ]]; then "$@" return fi sudo "$@" } run_project_user() { if [[ "$(id -u)" -eq 0 && -n "${SUDO_USER:-}" ]]; then sudo -u "${PROJECT_USER}" -H "$@" return fi "$@" } ensure_system_package() { local command_name="$1" local package_name="$2" if command -v "${command_name}" >/dev/null 2>&1; then return fi echo "Installing missing package: ${package_name}" run_privileged apt-get -o Acquire::ForceIPv4=true update run_privileged apt-get -o Acquire::ForceIPv4=true install -y "${package_name}" } ensure_system_package ffmpeg ffmpeg if [[ ! -d "/usr/lib/python3.12/venv" && ! -d "/usr/lib/python3.12/ensurepip" ]]; then echo "Installing missing package: python3.12-venv" run_privileged apt-get -o Acquire::ForceIPv4=true update run_privileged apt-get -o Acquire::ForceIPv4=true install -y python3.12-venv fi if ! command -v nvidia-smi >/dev/null 2>&1; then echo "nvidia-smi is required but not installed." >&2 exit 1 fi run_project_user env PYTHON_BIN="${PYTHON_BIN:-python3.12}" bash "${SETUP_SCRIPT}" run_project_user bash "${RUN_SCRIPT}" --prepare-only bash "${INSTALL_SERVICE_SCRIPT}" run_privileged systemctl enable --now people-flow.service cat <