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

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

if [[ -n "${YD_PYTHON:-}" ]]; then
  PYTHON="$YD_PYTHON"
else
  PYTHON="$(command -v python3 || true)"
fi

if [[ -z "$PYTHON" || ! -x "$PYTHON" ]]; then
  echo "错误：未找到可执行的 python3。请先安装 Python，或设置 YD_PYTHON=/path/to/python3。" >&2
  exit 127
fi

CLEAN_PATH="${YD_CLEAN_PATH:-/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin}"

ENV_ARGS=(
  "HOME=${HOME:-}"
  "USER=${USER:-}"
  "LOGNAME=${LOGNAME:-${USER:-}}"
  "SHELL=${SHELL:-/bin/zsh}"
  "TERM=${TERM:-xterm-256color}"
  "TMPDIR=${TMPDIR:-/tmp}"
  "LANG=${LANG:-C.UTF-8}"
  "LC_ALL=${LC_ALL:-${LANG:-C.UTF-8}}"
  "PATH=$CLEAN_PATH"
  "NO_PROXY=*"
  "no_proxy=*"
)

[[ -n "${YD_API_KEY:-}" ]] && ENV_ARGS+=("YD_API_KEY=$YD_API_KEY")
[[ -n "${YD_STRATEGY:-}" ]] && ENV_ARGS+=("YD_STRATEGY=$YD_STRATEGY")
[[ -n "${YD_PROJECT:-}" ]] && ENV_ARGS+=("YD_PROJECT=$YD_PROJECT")
[[ -n "${YD_ARCHIVE_DIR:-}" ]] && ENV_ARGS+=("YD_ARCHIVE_DIR=$YD_ARCHIVE_DIR")

# 捕获用户原始工作目录（cd 之前），透传给 Python 用于报告副本落点
USER_CWD="$(pwd)"

if [[ "${1:-}" == "--network-check" ]]; then
  cd "$SKILL_DIR"
  env -i "${ENV_ARGS[@]}" "YD_USER_CWD=$USER_CWD" "$PYTHON" - <<'PY'
import socket
import ssl
import sys

failed = False
for host in ("open.chineselaw.com", "ydzk.chineselaw.com"):
    try:
        infos = socket.getaddrinfo(host, 443, proto=socket.IPPROTO_TCP)
        addrs = sorted({item[4][0] for item in infos})
        print(f"{host}: DNS OK ({', '.join(addrs[:4])})")
        with socket.create_connection((host, 443), timeout=8) as raw:
            with ssl.create_default_context().wrap_socket(raw, server_hostname=host) as tls:
                print(f"{host}: TLS OK ({tls.version()})")
    except Exception as exc:
        failed = True
        print(f"{host}: FAIL {type(exc).__name__}: {exc}", file=sys.stderr)

sys.exit(1 if failed else 0)
PY
  exit $?
fi

cd "$SKILL_DIR"
exec env -i "${ENV_ARGS[@]}" "YD_USER_CWD=$USER_CWD" "$PYTHON" "$SCRIPT_DIR/yd_search.py" "$@"
