Derive program behavior from deployments; stop persisting it
behavior (tool/daemon/frontend) is now a derived display label computed from a program's deployments — path->tool, static->frontend, process->daemon (behavior_for_runner). load_config populates it so every reader gets the live value; _spec_to_yaml_dict excludes it so it is never written to disk. _summary_from_service derives it from the runner instead of hardcoding daemon. Fixtures gain path/python deployments so tool/daemon behaviors derive.
This commit is contained in:
@@ -139,6 +139,17 @@ def manager_for(runner: str) -> str:
|
||||
return _RUNNER_MANAGER.get(runner, "systemd")
|
||||
|
||||
|
||||
# `behavior` (tool/daemon/frontend) is a *derived* descriptive label, computed
|
||||
# from how a program is deployed — never stored/edited. A static service → a
|
||||
# frontend; a path install → a tool; anything else running a process → a daemon.
|
||||
_RUNNER_BEHAVIOR: dict[str, str] = {"static": "frontend", "path": "tool"}
|
||||
|
||||
|
||||
def behavior_for_runner(runner: str) -> str:
|
||||
"""The display behavior implied by a service's runner."""
|
||||
return _RUNNER_BEHAVIOR.get(runner, "daemon")
|
||||
|
||||
|
||||
# ---------------------
|
||||
# Systemd management
|
||||
# ---------------------
|
||||
|
||||
Reference in New Issue
Block a user