From dc284e1c4001f1a15c03d1ab3ccd692a0f4a594e Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Tue, 22 Apr 2025 16:42:21 +0200 Subject: [PATCH] vars: move overeager cache invalidation after one generator closure is regenrated. Invalidation doesn't need to be done after each generator is executed. We cannot interpolate values from other generators into another generator. The generators are executed in order. The finalScript of each generator stays constant. After the complete closure is generated the caller of generate may decide to invalidate the flake cache --- pkgs/clan-cli/clan_cli/vars/generate.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/vars/generate.py b/pkgs/clan-cli/clan_cli/vars/generate.py index feaf3832e..761f1914e 100644 --- a/pkgs/clan-cli/clan_cli/vars/generate.py +++ b/pkgs/clan-cli/clan_cli/vars/generate.py @@ -266,8 +266,6 @@ def execute_generator( machine.flake_dir, f"Update vars via generator {generator.name} for machine {machine.name}", ) - if len(files_to_commit) > 0: - machine.flush_caches() def _ask_prompts( @@ -526,7 +524,11 @@ def generate_command(args: argparse.Namespace) -> None: f"clanInternals.machines.{system}.{{{','.join(machine_names)}}}.config.system.clan.deployment.file", ] ) - generate_vars(machines, args.generator, args.regenerate, no_sandbox=args.no_sandbox) + has_changed = generate_vars( + machines, args.generator, args.regenerate, no_sandbox=args.no_sandbox + ) + if has_changed: + args.flake.invalidate_cache() def register_generate_parser(parser: argparse.ArgumentParser) -> None: