"""Skills 配置：产出目录等全局设置。

产出基础目录（必选）：
  1. CLI --output-dir 参数（单次覆盖）
  2. 环境变量 ODPS_SKILLS_DATA_DIR（安装后配置一次，长期生效）

未配置时报错退出，避免产出散落到不确定的位置。
"""

import os
import sys
from pathlib import Path
from dotenv import load_dotenv

# 包结构：src/odps_skills/config.py
# 上 4 级：odps_skills → src → skills → <project_root>
_PACKAGE_DIR = Path(__file__).parent          # odps_skills/
_SKILLS_DIR  = _PACKAGE_DIR.parent.parent     # skills/
_PROJECT_ROOT = _SKILLS_DIR.parent            # <project_root>/

# 加载 .env（优先 skills/ 下，其次 project root）
load_dotenv(_SKILLS_DIR / ".env", override=False)
load_dotenv(_PROJECT_ROOT / ".env", override=False)


def get_data_dir() -> str:
    """获取产出基础目录。
    
    优先级：
    1. 环境变量 ODPS_SKILLS_DATA_DIR（显式配置）
    2. 自动推导：skill 包的上一级目录（<project_root>/）
    """
    data_dir = os.environ.get("ODPS_SKILLS_DATA_DIR")
    if not data_dir:
        # 自动推导，无需配置
        data_dir = str(_PROJECT_ROOT)
    return data_dir
