From e56815f6844f8bc5690301c48857619dd50216b1 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Fri, 7 Nov 2025 13:05:28 +0100 Subject: [PATCH] fix: better layers support --- src/rougail/cli/__main__.py | 25 ++++++++++++++----------- tests/cli/result_user_datas_layers.txt | 4 ++++ tests/cli/versions.txt | 2 +- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/rougail/cli/__main__.py b/src/rougail/cli/__main__.py index bae3e6b..f282335 100644 --- a/src/rougail/cli/__main__.py +++ b/src/rougail/cli/__main__.py @@ -160,7 +160,7 @@ def manage_warnings(warnings): def load_user_datas(rougailconfig): layer_datas = {} if not rougailconfig["cli.load_config"]: - return None, {"errors": [], "warnings": []} + return None, None, None, {"errors": [], "warnings": []} try: user_data_names = rougailconfig["step.user_data"] except PropertiesOptionError: @@ -195,7 +195,8 @@ def load_user_datas(rougailconfig): layer_name = None # data user user_datas = [] - layer_datas[layer_name] = {} + if has_layers: + layer_datas[layer_name] = {} for user_data_name in layer: path = ( Path(__file__).parent.parent @@ -217,7 +218,8 @@ def load_user_datas(rougailconfig): subconfig, rougailconfig=rougailconfig, ).run(): - layer_datas[layer_name].setdefault(user_data_name, []).append(user_data["source"]) + if has_layers: + layer_datas[layer_name].setdefault(user_data_name, []).append(user_data["source"]) user_datas.append(user_data) if user_datas: new_err_warn = UserDatas(subconfig).user_datas(user_datas, invalid_user_datas_error=invalid_user_datas_error, unknown_user_datas_error=unknown_user_datas_error) @@ -226,14 +228,15 @@ def load_user_datas(rougailconfig): err_warn[level].extend(datas) for layer_name, interactive_user_data in interactive_user_datas.items(): for layer, rougail_user_datas in interactive_user_data.items(): - if has_layers and len(layers) > 1: - subconfig = subconfig.config("_".join(layer)) - subconfig.owner.set(subconfig.path()) - for user_data in rougail_user_datas( - subconfig, - rougailconfig=rougailconfig, - ).run(): - layer_datas[layer_name].setdefault(user_data_name, []).append(user_data["source"]) + if has_layers: + if len(layers) > 1: + subconfig = subconfig.config("_".join(layer)) + subconfig.owner.set(subconfig.path()) + for user_data in rougail_user_datas( + subconfig, + rougailconfig=rougailconfig, + ).run(): + layer_datas[layer_name].setdefault(user_data_name, []).append(user_data["source"]) return layer_datas, metaconfig, subconfig, err_warn diff --git a/tests/cli/result_user_datas_layers.txt b/tests/cli/result_user_datas_layers.txt index f06667e..8cc1133 100644 --- a/tests/cli/result_user_datas_layers.txt +++ b/tests/cli/result_user_datas_layers.txt @@ -2,6 +2,10 @@ │ Variable Modified value │ │ (⏳ Original default value) │ ╰──────────────────────────────────────╯ +╭─────────── Layers ────────────╮ +│ environment variable │ +│ the YAML file "yaml/file.yml" │ +╰───────────────────────────────╯ Variables: ┗━━ 📓 a description: a yaml value ◀ loaded from the YAML file "yaml/file.yml"  (⏳ my env value ◀ loaded from environment variable ⏳ my env value) diff --git a/tests/cli/versions.txt b/tests/cli/versions.txt index 7053e45..fa39f07 100644 --- a/tests/cli/versions.txt +++ b/tests/cli/versions.txt @@ -1 +1 @@ -["tiramisu", "tiramisu-cmdline-parser", "rougail", "rougail-cli", "rougail-structural-bitwarden", "rougail-user-data-ansible", "rougail-user-data-bitwarden", "rougail-user-data-commandline", "rougail-user-data-environment", "rougail-user-data-yaml", "rougail-output-ansible", "rougail-output-console", "rougail-output-doc", "rougail-output-json"] +["tiramisu", "tiramisu-cmdline-parser", "rougail", "rougail-cli", "rougail-structural-bitwarden", "rougail-user-data-ansible", "rougail-user-data-bitwarden", "rougail-user-data-commandline", "rougail-user-data-environment", "rougail-user-data-questionary", "rougail-user-data-yaml", "rougail-output-ansible", "rougail-output-console", "rougail-output-doc", "rougail-output-json"]