diff --git a/pkgs/clan-cli/clan_cli/machines/update.py b/pkgs/clan-cli/clan_cli/machines/update.py index 8f6c6837a..05a8a7bb1 100644 --- a/pkgs/clan-cli/clan_cli/machines/update.py +++ b/pkgs/clan-cli/clan_cli/machines/update.py @@ -20,7 +20,7 @@ from clan_cli.facts.upload import upload_secrets from clan_cli.flake import Flake from clan_cli.inventory import Machine as InventoryMachine from clan_cli.machines.machines import Machine -from clan_cli.nix import nix_command, nix_metadata +from clan_cli.nix import nix_command, nix_config, nix_metadata from clan_cli.ssh.host import Host, HostKeyCheck from clan_cli.vars.generate import generate_vars from clan_cli.vars.upload import upload_secret_vars @@ -265,6 +265,16 @@ def update_command(args: argparse.Namespace) -> None: machine.error("Updating macOS machines is not yet supported") sys.exit(1) + config = nix_config() + system = config["system"] + machine_names = [machine.name for machine in machines] + args.flake.precache( + [ + f"clanInternals.machines.{system}.{{{','.join(machine_names)}}}.config.clan.core.vars.generators.*.validationHash", + f"clanInternals.machines.{system}.{{{','.join(machine_names)}}}.config.system.clan.deployment.file", + ] + ) + deploy_machines(machines) except KeyboardInterrupt: log.warning("Interrupted by user")