Coverage for src/starlord/_config.py: 63%
27 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-01 05:55 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-01 05:55 +0000
1import os
2import platform
3from pathlib import Path
4from types import SimpleNamespace
6config = SimpleNamespace(
7 system=platform.system(),
8 base_dir=Path.home() / ".starlord",
9 cache_dir=Path.home() / ".starlord" / "cycache",
10 grid_dir=Path.home() / ".starlord" / "grids",
11)
14def _load_config():
15 config.system = platform.system()
16 if "STARLORD_DATA_DIR" in os.environ.keys():
17 config.base_dir = Path(os.environ['STARLORD_DATA_DIR'])
18 assert config.base_dir.parent.exists()
19 config.base_dir.mkdir(exist_ok=True)
20 elif config.system == "Linux":
21 assert Path.home().exists()
22 config.base_dir = Path.home() / ".config" / "starlord"
23 config.base_dir.mkdir(parents=True, exist_ok=True)
24 elif config.system == "Darwin":
25 assert Path.home().exists()
26 config.base_dir = Path.home() / "Library" / "Application Support" / "starlord"
27 config.base_dir.mkdir(parents=True, exist_ok=True)
28 else:
29 assert Path.home().exists()
30 config.base_dir = Path.home() / ".starlord"
31 config.base_dir.mkdir(parents=True, exist_ok=True)
32 config.cache_dir = config.base_dir / "cycache"
33 config.cache_dir.mkdir(exist_ok=True)
34 config.grid_dir = config.base_dir / "grids"
35 config.grid_dir.mkdir(exist_ok=True)
37_load_config()