Files
gitlab-instance-0a899031_cn…/scripts/load_dev_env.py
2026-06-08 06:05:31 -05:00

55 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""加载本地开发环境变量cursor.env 优先级最高)。"""
from __future__ import annotations
import os
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
ENV_FILES = (
ROOT / ".env",
ROOT / ".env.local",
ROOT / "backend" / ".env",
ROOT / "backend" / ".env.local",
ROOT / "cursor.env",
)
def read_env_file(path: Path) -> dict[str, str]:
values: dict[str, str] = {}
if not path.exists():
return values
for raw_line in path.read_text(encoding="utf-8").splitlines():
line = raw_line.strip()
if not line or line.startswith("#") or "=" not in line:
continue
key, value = line.split("=", 1)
key = key.strip()
value = value.strip().strip('"').strip("'")
if key:
values[key] = value
return values
def load_dev_env() -> dict[str, str]:
merged: dict[str, str] = {}
for path in ENV_FILES:
merged.update(read_env_file(path))
for key, value in merged.items():
os.environ[key] = value
return merged
def ssh_config() -> tuple[str, str, str]:
"""返回 (host, user, password),优先读 cursor.env。"""
merged = load_dev_env()
host = merged.get("NOMAD_SSH_HOST") or merged.get("DEV_SSH_HOST", "")
user = merged.get("NOMAD_SSH_USER") or merged.get("DEV_SSH_USER", "ubuntu")
password = merged.get("NOMAD_SSH_PASSWORD") or merged.get("DEV_SSH_PASSWORD", "")
if not host or not password:
raise RuntimeError(
"SSH 配置缺失:请在项目根目录 cursor.env 中设置 DEV_SSH_HOST / DEV_SSH_PASSWORD"
)
return host, user, password