| 1234567891011121314151617181920212223242526272829303132 |
- """Shared path resolution for zhuce6."""
- from __future__ import annotations
- import os
- from pathlib import Path
- def _resolve_env_path(name: str, default: Path) -> Path:
- raw = str(os.getenv(name, "")).strip()
- return Path(raw).expanduser().resolve() if raw else default.expanduser().resolve()
- PROJECT_ROOT = _resolve_env_path("ZHUCE6_PROJECT_ROOT", Path(__file__).resolve().parents[1])
- CONFIG_DIR = _resolve_env_path("ZHUCE6_CONFIG_DIR", PROJECT_ROOT / "config")
- STATE_DIR = _resolve_env_path("ZHUCE6_STATE_DIR", PROJECT_ROOT / "state")
- LOG_DIR = _resolve_env_path("ZHUCE6_LOG_DIR", PROJECT_ROOT / "logs")
- DEFAULT_ENV_FILE = PROJECT_ROOT / ".env"
- DEFAULT_RUNTIME_STATE_FILE = STATE_DIR / "runtime_state.json"
- DEFAULT_ACCOUNT_SURVIVAL_STATE_FILE = STATE_DIR / "account_survival_tracker.json"
- DEFAULT_RESPONSES_SURVIVAL_STATE_FILE = STATE_DIR / "responses_survival_tracker.json"
- DEFAULT_CFMAIL_CONFIG_PATH = CONFIG_DIR / "cfmail_accounts.json"
- DEFAULT_DASHBOARD_LOG_FILE = LOG_DIR / "dashboard.log"
- DEFAULT_REGISTER_LOG_FILE = LOG_DIR / "register.log"
- def resolve_cfmail_config_path() -> Path:
- explicit = str(os.getenv("ZHUCE6_CFMAIL_CONFIG_PATH", "")).strip()
- if explicit:
- return Path(explicit).expanduser().resolve()
- return DEFAULT_CFMAIL_CONFIG_PATH
|