| """Default local paths for rustwx-stormscope products and caches.""" |
|
|
| from __future__ import annotations |
|
|
| import os |
| from pathlib import Path |
|
|
|
|
| def env_value(name: str, legacy_name: str | None = None, default: str | Path | None = None) -> str: |
| if name in os.environ: |
| return os.environ[name] |
| if legacy_name and legacy_name in os.environ: |
| return os.environ[legacy_name] |
| if default is None: |
| return "" |
| return str(default) |
|
|
|
|
| def repo_root() -> Path: |
| return Path(__file__).resolve().parents[1] |
|
|
|
|
| def wxstore_root() -> Path: |
| return Path( |
| env_value( |
| "RUSTWX_STORMSCOPE_WXSTORE_ROOT", |
| "SSFAST_WXSTORE_ROOT", |
| repo_root() / "volume" / "wxstores" / "stormscope", |
| ) |
| ) |
|
|
|
|
| def default_outdir() -> Path: |
| return Path(env_value("RUSTWX_STORMSCOPE_OUT", "SSFAST_OUT", wxstore_root() / "out" / "operational")) |
|
|
|
|
| def default_site_dir() -> Path: |
| return Path(env_value("RUSTWX_STORMSCOPE_SITE", "SSFAST_SITE", wxstore_root() / "site")) |
|
|
|
|
| def default_exports_dir() -> Path: |
| return Path(env_value("RUSTWX_STORMSCOPE_EXPORTS", "SSFAST_EXPORTS", wxstore_root() / "exports")) |
|
|
|
|
| def default_spatial_root() -> Path: |
| return Path(env_value("RUSTWX_STORMSCOPE_SPATIAL_ROOT", "SSFAST_SPATIAL_ROOT", wxstore_root() / "spatial")) |
|
|
|
|
| def default_webmap_dir() -> Path: |
| return Path(env_value("RUSTWX_STORMSCOPE_WEBMAP", "SSFAST_WEBMAP", wxstore_root() / "webmap_preview")) |
|
|