refactor: replace eval_nix/build_nix with machine.select()

- Remove nix(), eval_nix(), and build_nix() methods from Machine class
- Add select() method that handles machine-specific attribute prefixes
- Update all usages to use machine.select() directly
- Handle Path conversion and tmp_store logic at call sites
- This simplifies the Machine API and prepares for deployment.json removal
This commit is contained in:
lassulus
2025-06-29 16:35:19 +02:00
parent f9f7d65e94
commit cc923d5638
11 changed files with 44 additions and 60 deletions

View File

@@ -72,14 +72,20 @@ class Generator:
def final_script(self) -> Path:
assert self._machine is not None
final_script = self._machine.build_nix(
f'config.clan.core.vars.generators."{self.name}".finalScript'
from clan_lib.nix import nix_test_store
output = Path(
self._machine.select(
f'config.clan.core.vars.generators."{self.name}".finalScript'
)
)
return final_script
if tmp_store := nix_test_store():
output = tmp_store.joinpath(*output.parts[1:])
return output
def validation(self) -> str | None:
assert self._machine is not None
return self._machine.eval_nix(
return self._machine.select(
f'config.clan.core.vars.generators."{self.name}".validationHash'
)