"""
GEO Tool — PyInstaller 打包入口

打包后自动切换工作目录到解压路径，确保 config.json、geo_data.db、
.streamlit/、knowledge_base/ 等资源文件的相对路径正常工作。
"""

import os
import sys
from pathlib import Path


def main():
    # 判断是否在 PyInstaller 打包环境中运行
    if getattr(sys, "frozen", False):
        bundle_dir = Path(sys._MEIPASS)
    else:
        bundle_dir = Path(__file__).parent

    # 切换到打包目录，确保所有相对路径能正确解析
    os.chdir(str(bundle_dir))

    # 确保运行时目录存在（打包时可能为空目录导致不被包含）
    (bundle_dir / "knowledge_base").mkdir(exist_ok=True)

    # 重写 argv 启动 Streamlit
    # 注意：此应用将被嵌入桌面壳（Tauri）中运行，因此：
    #   - headless=true：不自动打开浏览器，由桌面壳接管
    #   - port=8501：固定端口
    #   - gatherUsageStats=false / developmentMode=false：关闭遥测与在线服务
    #   - logger.level=error：静默启动，减少控制台输出
    sys.argv = [
        "streamlit",
        "run",
        "geo_tool.py",
        "--server.port", "8501",
        "--server.address", "127.0.0.1",
        "--server.headless", "true",
        "--browser.gatherUsageStats", "false",
        "--global.developmentMode", "false",
        "--logger.level", "error",
    ]

    from streamlit.web.cli import main as streamlit_main
    streamlit_main()


if __name__ == "__main__":
    main()
