#!/usr/bin/bash
set -euo pipefail

PROJECT_DIR=/usr/lib/witty-mcp-manager
STATE_DIR=/var/lib/witty-mcp-manager

export UV_PROJECT_ENVIRONMENT="${UV_PROJECT_ENVIRONMENT:-${STATE_DIR}/.venv}"
export UV_CACHE_DIR="${UV_CACHE_DIR:-${STATE_DIR}/cache/uv}"
export WITTY_MCP_CONFIG="${WITTY_MCP_CONFIG:-/etc/witty/mcp-manager.yaml}"

if [ ! -x "${UV_PROJECT_ENVIRONMENT}/bin/python" ]; then
    UV_SYNC_ARGS=(sync --no-dev --no-editable --project "${PROJECT_DIR}")
    if [ -f "${PROJECT_DIR}/uv.lock" ]; then
        UV_SYNC_ARGS=(sync --locked --no-dev --no-editable --project "${PROJECT_DIR}")
    fi
    /usr/bin/uv "${UV_SYNC_ARGS[@]}"
fi

UV_RUN_ARGS=(run --no-sync --project "${PROJECT_DIR}" witty-mcp "$@")
if [ -f "${PROJECT_DIR}/uv.lock" ]; then
    UV_RUN_ARGS=(run --locked --no-sync --project "${PROJECT_DIR}" witty-mcp "$@")
fi

exec /usr/bin/uv "${UV_RUN_ARGS[@]}"
