From 5ab3a164c8596a86db9975e4903d59f98af4b1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Fri, 18 Jul 2025 17:16:19 +0200 Subject: [PATCH] install: precache vars --- pkgs/clan-cli/clan_lib/machines/install.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkgs/clan-cli/clan_lib/machines/install.py b/pkgs/clan-cli/clan_lib/machines/install.py index f0393fdce..4f97b4ac7 100644 --- a/pkgs/clan-cli/clan_lib/machines/install.py +++ b/pkgs/clan-cli/clan_lib/machines/install.py @@ -12,7 +12,7 @@ from clan_cli.vars.generate import generate_vars from clan_lib.api import API from clan_lib.cmd import Log, RunOpts, run from clan_lib.machines.machines import Machine -from clan_lib.nix import nix_shell +from clan_lib.nix import nix_config, nix_shell from clan_lib.ssh.create import create_secret_key_nixos_anywhere from clan_lib.ssh.remote import Remote @@ -50,6 +50,20 @@ def run_machine_install(opts: InstallOptions, target_host: Remote) -> None: machine.debug(f"installing {machine.name}") + # Pre-cache vars attributes before generation to speed up installation + config = nix_config() + system = config["system"] + machine_name = machine.name + machine.flake.precache( + [ + f"clanInternals.machines.{system}.{machine_name}.config.clan.core.vars.generators.*.validationHash", + f"clanInternals.machines.{system}.{machine_name}.config.clan.core.vars.generators.*.{{share,dependencies,migrateFact,prompts}}", + f"clanInternals.machines.{system}.{machine_name}.config.clan.core.vars.generators.*.files.*.{{secret,deploy,owner,group,mode,neededFor}}", + f"clanInternals.machines.{system}.{machine_name}.config.clan.core.vars.settings.secretModule", + f"clanInternals.machines.{system}.{machine_name}.config.clan.core.vars.settings.publicModule", + ] + ) + generate_facts([machine]) generate_vars([machine])