54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
"""
|
||
JIANGCHANG_* 数据根与用户目录:解析规则 + 可选本地 CLI 默认值。
|
||
|
||
各技能 scripts/jiangchang_skill_core/ 为发布用副本,与 kit 保持同步。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
import os
|
||
import sys
|
||
|
||
# 发版/嵌入宿主前改为 False,或仅通过环境变量 JIANGCHANG_CLI_LOCAL_DEV=1 开启
|
||
CLI_LOCAL_DEV_ENABLED = True
|
||
|
||
# 本地开发且未设置 JIANGCHANG_USER_ID 时注入(与宿主约定一致即可修改)
|
||
DEFAULT_LOCAL_USER_ID = "10032"
|
||
|
||
# Windows 下未设置 JIANGCHANG_DATA_ROOT 时的默认盘路径
|
||
WIN_DEFAULT_DATA_ROOT = r"D:\jiangchang-data"
|
||
|
||
|
||
def platform_default_data_root() -> str:
|
||
if sys.platform == "win32":
|
||
return WIN_DEFAULT_DATA_ROOT
|
||
return os.path.join(os.path.expanduser("~"), ".jiangchang-data")
|
||
|
||
|
||
def get_data_root() -> str:
|
||
env = (os.getenv("JIANGCHANG_DATA_ROOT") or "").strip()
|
||
if env:
|
||
return env
|
||
return platform_default_data_root()
|
||
|
||
|
||
def get_user_id() -> str:
|
||
return (os.getenv("JIANGCHANG_USER_ID") or "").strip() or "_anon"
|
||
|
||
|
||
def apply_cli_local_defaults() -> None:
|
||
"""
|
||
在 CLI 最早阶段调用(main.py 在 import 业务包之前)。
|
||
宿主已设置 JIANGCHANG_* 时不会覆盖。
|
||
"""
|
||
enabled = CLI_LOCAL_DEV_ENABLED
|
||
if not enabled:
|
||
v = (os.getenv("JIANGCHANG_CLI_LOCAL_DEV") or "").strip().lower()
|
||
enabled = v in ("1", "true", "yes", "on")
|
||
if not enabled:
|
||
return
|
||
if not (os.getenv("JIANGCHANG_DATA_ROOT") or "").strip():
|
||
os.environ["JIANGCHANG_DATA_ROOT"] = platform_default_data_root()
|
||
if not (os.getenv("JIANGCHANG_USER_ID") or "").strip():
|
||
os.environ["JIANGCHANG_USER_ID"] = DEFAULT_LOCAL_USER_ID.strip()
|