sand-boxer/src/sandboxer/defaults.py

30 lines
864 B
Python
Raw Normal View History

"""Default paths and profile resolution for CLI."""
from __future__ import annotations
import os
from pathlib import Path
DEFAULT_CANARY_PROFILE = "profile.sandbox-canary"
DEFAULT_COMPOSE_PROFILE = "profile.compose-e2e"
def repo_root() -> Path:
override = os.environ.get("SANDBOXER_REPO_ROOT")
if override:
return Path(override).expanduser().resolve()
return Path(__file__).resolve().parents[2]
def resolve_create_defaults(
profile: str | None,
inputs: dict[str, str],
) -> tuple[str, dict[str, str]]:
"""Apply default profile and repo per SAND-WP-0008-T06."""
resolved = dict(inputs)
user_repo = "repo" in resolved
if not user_repo:
resolved["repo"] = str(repo_root())
if profile is None:
profile = DEFAULT_COMPOSE_PROFILE if user_repo else DEFAULT_CANARY_PROFILE
return profile, resolved