Files
awoooi/scripts/aider_watch_client/aider_watch_client/config.py

43 lines
1.2 KiB
Python

# aider-watch-client config | 2026-04-20 @ Asia/Taipei
"""讀 ~/.aider-watch.env + 常數路徑。"""
from __future__ import annotations
import os
from pathlib import Path
from datetime import timezone, timedelta
HOME = Path.home()
WATCH_ROOT = HOME / "aider-watch"
BUFFER_DIR = WATCH_ROOT / "buffer"
LIVE_LOG = WATCH_ROOT / "live.log"
LOGS_DIR = WATCH_ROOT / "logs"
ENV_FILE = HOME / ".aider-watch.env"
TAIPEI = timezone(timedelta(hours=8))
_loaded = False
def load_env() -> None:
global _loaded
if _loaded or not ENV_FILE.exists():
_loaded = True
return
for line in ENV_FILE.read_text().splitlines():
s = line.strip()
if not s or s.startswith("#") or "=" not in s:
continue
k, _, v = s.partition("=")
os.environ.setdefault(k.strip(), v.strip())
_loaded = True
def get(name: str, default: str = "", required: bool = False) -> str:
load_env()
v = os.environ.get(name, default)
if required and not v:
raise RuntimeError(f"{name} not set in {ENV_FILE}")
return v
def ensure_dirs() -> None:
for d in (WATCH_ROOT, BUFFER_DIR, LOGS_DIR):
d.mkdir(parents=True, exist_ok=True)