# shellcheck shell=bash

_okstra_ctl_open() {
  if [[ $# -lt 1 ]]; then
    printf 'open: missing <runId-or-prefix>\n' >&2; exit 2
  fi
  local resolved
  resolved="$(OKSTRA_HOME_RESOLVED="$(okstra_central_home)" \
              OKSTRA_CTL_LIB_DIR="$SCRIPT_DIR" \
              OK_QUERY="$1" python3 - <<'PY'
import os, sys
sys.path.insert(0, os.environ["OKSTRA_CTL_LIB_DIR"])
from pathlib import Path
from okstra_ctl import resolve_run_id, find_row_by_run_id, absolute_final_report_path, ResolveError
home = Path(os.environ["OKSTRA_HOME_RESOLVED"])
try:
    rid = resolve_run_id(home, os.environ["OK_QUERY"])
except ResolveError as e:
    print(f"open: {e}", file=sys.stderr); sys.exit(2)
row = find_row_by_run_id(home, rid)
abs_path = absolute_final_report_path(row) if row else None
if abs_path is None or not abs_path.is_file():
    print(f"open: final report not found", file=sys.stderr); sys.exit(2)
print(str(abs_path))
PY
)"
  if [[ -z "$resolved" ]]; then exit 2; fi
  # $EDITOR 가 설정되어 있으면 그것으로 열고, 없으면 경로만 출력한다.
  # EDITOR 는 보통 'code -w' 처럼 인자를 포함할 수 있어 단어 분리해
  # exec 해야 한다(따옴표 안에 두면 단일 명령어로 잘못 해석됨).
  if [[ -n "${EDITOR:-}" ]]; then
    # shellcheck disable=SC2086
    exec ${EDITOR} "$resolved"
  fi
  printf '%s\n' "$resolved"
}
