From ab3158ca070a92b8a60eb1648aa8f7cede45fb7d Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Thu, 31 Jul 2025 11:05:03 +0200 Subject: [PATCH] vars/decrypt_dependencies: simplify --- pkgs/clan-cli/clan_cli/vars/generate.py | 30 +++++++++++++------------ 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/vars/generate.py b/pkgs/clan-cli/clan_cli/vars/generate.py index c61dfa22c..5bfd6708e 100644 --- a/pkgs/clan-cli/clan_cli/vars/generate.py +++ b/pkgs/clan-cli/clan_cli/vars/generate.py @@ -8,7 +8,7 @@ from dataclasses import dataclass, field from functools import cached_property from pathlib import Path from tempfile import TemporaryDirectory -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING from clan_cli.completions import ( add_dynamic_completer, @@ -213,27 +213,29 @@ def decrypt_dependencies( secret_vars_store: StoreBase, public_vars_store: StoreBase, ) -> dict[str, dict[str, bytes]]: - decrypted_dependencies: dict[str, Any] = {} + generators = Generator.generators_from_flake(machine.name, machine.flake) + + result: dict[str, dict[str, bytes]] = {} + for generator_name in set(generator.dependencies): - decrypted_dependencies[generator_name] = {} - generators = Generator.generators_from_flake(machine.name, machine.flake) - for dep_generator in generators: - if generator_name == dep_generator.name: - break - else: - msg = f"Could not find dependent generator {generator_name} in machine {machine.name}" + result[generator_name] = {} + + dep_generator = next(g for g in generators if g.name == generator_name) + if dep_generator is None: + msg = f"Generator {generator_name} not found in machine {machine.name}" raise ClanError(msg) + dep_files = dep_generator.files for file in dep_files: if file.secret: - decrypted_dependencies[generator_name][file.name] = ( - secret_vars_store.get(dep_generator, file.name) + result[generator_name][file.name] = secret_vars_store.get( + dep_generator, file.name ) else: - decrypted_dependencies[generator_name][file.name] = ( - public_vars_store.get(dep_generator, file.name) + result[generator_name][file.name] = public_vars_store.get( + dep_generator, file.name ) - return decrypted_dependencies + return result # decrypt dependencies and return temporary file tree