From 7608416aecc733a57ddd4f2b39bc7a7ce78f3394 Mon Sep 17 00:00:00 2001 From: Wolfram Date: Tue, 7 Jan 2025 11:54:41 +0100 Subject: [PATCH] dhall syntax fix --- CHANGELOG | 3 ++- config-generator.py | 2 +- generator/core.py | 41 +++++++++++++++++++++++++++++++++-------- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 66270ca..346678d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -2024.11 +2025.1 - **Features** - Neu: Option zur Erstellung eines Domänen-Managers. (`manager_domain`) - Neu: Option zur Erstellung eines werkstattweiten Benutzers. (`domain_user`) @@ -9,6 +9,7 @@ - Die Einstellung `fa_update_dhall` heißt jetzt `fa_dhall_update`, damit ein einheitliches Benennungsschema mit der dazugehörigen Einstellungen `fa_dhall_file` gegeben ist. - **Bugfixes** - Crash bei Verwendung der Einstellung `show_machines` + - Korrektur der erzeugten dhall-Syntax. Der letzte Eintrag einer Datenstruktur wird nicht mehr mit einem Komma abgeschlossen. - **Sonstiges** - Admin-Berechtigungen wurden vollständig auf Wildcard-Zugriffsschema umgestellt. Zuvor wurden Berechtigungen für einzelne Bereiche vergeben. diff --git a/config-generator.py b/config-generator.py index a266b74..74df1df 100644 --- a/config-generator.py +++ b/config-generator.py @@ -1,4 +1,4 @@ -__version__ = '2024.12' +__version__ = '2025.1' import time time_start = time.perf_counter() diff --git a/generator/core.py b/generator/core.py index a8aecdb..e204f4f 100644 --- a/generator/core.py +++ b/generator/core.py @@ -477,14 +477,21 @@ def generate_bffh_roles(roles): data.append('{') # Inhalt - for role in roles: + last = len(roles) - 1 + + for index, role in enumerate(roles): data.append(space * 1 + extraspace + f'{role}' + ' =') data.append(space * 1 + extraspace + '{') data.append(space * 2 + extraspace + 'permissions = [') for perm in roles[role]["perms"]: data.append(space * 4 + f'"{perm}",') data.append(space * 2 + extraspace + ']') - data.append(space * 1 + extraspace + '},') + + if index == last: + data.append(space * 1 + extraspace + '}') + else: + data.append(space * 1 + extraspace + '},') + data.append(' ') # Ende Datenstruktur @@ -507,7 +514,9 @@ def generate_bffh_machines(machines): data.append('{') # Inhalt - for id, m in machines.items(): + last = len(machines) - 1 + + for index, (id, m) in enumerate(machines.items()): specs = m.get_machine() data.append(space * 1 + extraspace + f'{specs["fa_id"]}' + ' =') data.append(space * 1 + extraspace + '{') @@ -520,7 +529,10 @@ def generate_bffh_machines(machines): for i in range(len(specs["perms"])): data.append(space * 2 + extraspace + f'{specs["perms_names"][i]} = "{specs["perms"][i]}",') - data.append(space * 1 + extraspace + '},') + if index == last: + data.append(space * 1 + extraspace + '}') + else: + data.append(space * 1 + extraspace + '},') data.append(' ') # Ende Datenstruktur @@ -543,7 +555,9 @@ def generate_bffh_actors(machines): data.append('{') # Inhalt - for id, m in machines.items(): + last = len(machines) - 1 + + for index, (id, m) in enumerate(machines.items()): specs = m.get_machine() if len(specs["actor_id"]) > 0 and len(specs["actor_type"]) > 0: @@ -568,7 +582,12 @@ def generate_bffh_actors(machines): data.append(space * 3 + extraspace + f'{key} = {string},') data.append(space * 2 + extraspace + '}') - data.append(space * 1 + extraspace + '},') + + if index == last: + data.append(space * 1 + extraspace + '}') + else: + data.append(space * 1 + extraspace + '},') + data.append(' ') # Ende Datenstruktur @@ -592,12 +611,18 @@ def generate_bffh_actorconnections(machines): data.append('[') # Inhalt - for id, m in machines.items(): + last = len(machines) - 1 + + for index, (id, m) in enumerate(machines.items()): specs = m.get_machine() if len(specs["actor_id"]) > 0 and len(specs["actor_type"]) > 0: actor_fullid = specs["actor_type"] + '_' + specs["actor_id"] - data.append(space * 1 + extraspace + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' },') + + if index == last: + data.append(space * 1 + extraspace + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' }') + else: + data.append(space * 1 + extraspace + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' },') # Ende Datenstruktur if settings["fa_dhall_create"] == False: