#!/usr/bin/env bash
# 管道启动器：把命令交给一个真正装了依赖的解释器。
#
# 背景（实测踩过的坑）：会话里 PATH 上的 python3 可能不是系统解释器，
# 而是编辑器工具链自建的 venv（例如 ~/.pi-lens/pip-tools）。
# 那种 venv 里没有 defusedxml，而且关闭了 user site，于是
# `python3 -m dfannals.cli` 会突然报 ModuleNotFoundError。
# 这里主动挑一个能 import defusedxml 的解释器，避免依赖 PATH 的偶然性。
#
#   scripts/dfannals status|plan|threads|episodes|cast|index|next|run ...
#   DFANNALS_PYTHON=/path/to/python3 scripts/dfannals status   # 也可显式指定
set -euo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

pick_python() {
    local cand
    for cand in "${DFANNALS_PYTHON:-}" /usr/bin/python3 python3; do
        [ -n "$cand" ] || continue
        command -v "$cand" >/dev/null 2>&1 || continue
        if "$cand" -c "import defusedxml" >/dev/null 2>&1; then
            printf '%s' "$cand"
            return 0
        fi
    done
    return 1
}

PY="$(pick_python)" || {
    echo "找不到可用解释器：需要一个能 import defusedxml 的 python3。" >&2
    echo "装依赖：sudo apt install -y python3-defusedxml" >&2
    exit 1
}

cd "$HERE"
exec "$PY" -m dfannals.cli "$@"
