diff --git a/src/rougail/output_hcl/export.py b/src/rougail/output_hcl/export.py index f52498d..d4223e7 100644 --- a/src/rougail/output_hcl/export.py +++ b/src/rougail/output_hcl/export.py @@ -115,8 +115,12 @@ class RougailOutputHcl(RougailOutputJson): parent_obj[name] = [] block_to_insert = parent_obj[name] block_to_insert.extend(child_obj) - elif parent_is_block: + elif parent_is_block and child_obj.get("__is_block__", False): parent_obj.append({name: child_obj}) + elif parent_is_block: + if not parent_obj: + parent_obj.append({}) + parent_obj[-1][name] = child_obj else: parent_obj[name] = child_obj diff --git a/tests/results/10-doc_family_inside_a_block.yaml.hcl b/tests/results/10-doc_family_inside_a_block.yaml.hcl new file mode 100644 index 0000000..534c81f --- /dev/null +++ b/tests/results/10-doc_family_inside_a_block.yaml.hcl @@ -0,0 +1,8 @@ +stack { + a_family_1 = { + a_variable = "a value" + } + a_family_2 = { + a_variable = "a value" + } +} diff --git a/tests/structures/10-doc_family_inside_a_block.yaml b/tests/structures/10-doc_family_inside_a_block.yaml new file mode 100644 index 0000000..738d398 --- /dev/null +++ b/tests/structures/10-doc_family_inside_a_block.yaml @@ -0,0 +1,15 @@ +%YAML 1.2 +--- +version: 1.1 + +stack: + hcl_type: block + + a_family_1: # a family 1 + + a_variable: a value + + a_family_2: # a family 2 + + a_variable: a value +...