#!/bin/bash
set -Eeuo pipefail

data_home="${XDG_DATA_HOME:-$HOME/.local/share}"
python_bin="${CODEX_LINUX_READ_ALOUD_KOKORO_PYTHON:-$data_home/codex-desktop/read-aloud/kokoro-venv/bin/python}"
model="${CODEX_LINUX_READ_ALOUD_KOKORO_MODEL:-$data_home/kokoro/kokoro-v1.0.onnx}"
voices="${CODEX_LINUX_READ_ALOUD_KOKORO_VOICES:-$data_home/kokoro/voices-v1.0.bin}"
runner_dir="$(cd "$(dirname "$0")" && pwd)"

if [ -z "${XDG_RUNTIME_DIR:-}" ]; then
    uid="$(id -u 2>/dev/null || true)"
    if [ -n "$uid" ] && { [ -S "/run/user/$uid/pipewire-0" ] || [ -S "/run/user/$uid/pulse/native" ]; }; then
        export XDG_RUNTIME_DIR="/run/user/$uid"
    fi
fi

[ -x "$python_bin" ] || {
    echo "Kokoro Python runtime not found: $python_bin" >&2
    exit 127
}
[ -f "$model" ] || {
    echo "Kokoro model not found: $model" >&2
    exit 66
}
[ -f "$voices" ] || {
    echo "Kokoro voices file not found: $voices" >&2
    exit 66
}
command -v aplay >/dev/null 2>&1 || {
    echo "aplay not found" >&2
    exit 127
}

export CODEX_LINUX_READ_ALOUD_KOKORO_MODEL="$model"
export CODEX_LINUX_READ_ALOUD_KOKORO_VOICES="$voices"
exec "$python_bin" "$runner_dir/kokoro_stdin.py"
