from __future__ import annotations import os from pathlib import Path def find_default_wiki_dir() -> Path: env_wiki = os.environ.get("WIKI_DIR") or os.environ.get("GIT_REPO_DIR") if env_wiki: return Path(env_wiki).resolve() candidates = [ Path("/wiki"), Path.cwd() / "knowledge-wiki", Path.cwd().parent.parent / "knowledge-wiki", Path("/Users/moritz/src/infrapuzzle/knowledge-wiki"), Path.home() / "src" / "infrapuzzle" / "knowledge-wiki", Path("/home/node/.openclaw/wiki/main"), ] for c in candidates: if c.is_dir() and (c / "data").is_dir(): return c.resolve() return (Path.cwd() / "knowledge-wiki").resolve() WIKI_DIR = find_default_wiki_dir() DATA_DIR = Path( os.environ.get("DATA_DIR") or os.environ.get("DUCKDB_DATA_DIR") or (WIKI_DIR / "data") ).resolve() GIT_REPO_URL = os.environ.get( "GIT_REPO_URL", os.environ.get("GIT_REMOTE_URL", "https://git.moritzgraf.de/moritz/knowledge-wiki.git"), ) GIT_USERNAME = os.environ.get("GIT_SYNC_USERNAME", "") GIT_PASSWORD = os.environ.get("GIT_SYNC_PASSWORD", os.environ.get("WIKI_SYNC_TOKEN", "")) GIT_BRANCH = os.environ.get("GIT_BRANCH", "main") GIT_SYNC_INTERVAL_SECONDS = int(os.environ.get("GIT_SYNC_INTERVAL_SECONDS", "60")) AUTO_GIT_SYNC = os.environ.get("AUTO_GIT_SYNC", "true").lower() in ("1", "true", "yes") GIT_AUTHOR_NAME = os.environ.get("GIT_AUTHOR_NAME", "DuckDB Backend") GIT_AUTHOR_EMAIL = os.environ.get("GIT_AUTHOR_EMAIL", "duckdb-backend@haumdaucher.de") PORT = int(os.environ.get("PORT", "8000")) HOST = os.environ.get("HOST", "0.0.0.0")