fabaccess-config-generator/config-generator.py

81 lines
2.4 KiB
Python
Raw Normal View History

2024-11-18 17:01:58 +01:00
__version__ = '2024.6'
2024-05-04 13:20:05 +02:00
import time
time_start = time.perf_counter()
from pathlib import Path
from generator.core import *
from generator.helpers import *
input_file = 'maschinenliste.csv'
# Output-Ordner anlegen
directory = "output"
path = Path(directory)
path.mkdir(parents=True, exist_ok=True)
print(f' --- Datei = {input_file}')
# Maschinenliste einlesen
print(' --- Maschinen importieren:')
machines = import_machines(input_file)
# Rollen für FabAccess erzeugen
print(' --- Rollen erzeugen')
roles = generate_roles(machines)
# Finale DHALL-Daten erzeugen
export_roles = generate_bffh_roles(roles)
export_machines = generate_bffh_machines(machines)
export_actors = generate_bffh_actors(machines)
export_actorconnections = generate_bffh_actorconnections(machines)
export_all = export_roles + export_machines + export_actors + export_actorconnections
# Anzeigen der erzeugten Daten
if settings["show_machines"] == True:
for m in machines:
display_machine(m)
if settings["show_roles"] == True:
print_dict(roles)
# Daten exportieren
print(' --- DHALL-Daten exportieren')
write_file('output/bffh-dhall-data.txt', export_all)
if settings["create_file_roles"] == True:
print(' --- Rollen exportieren in roles.csv')
content = generate_csv_roles(roles)
write_file('output/roles.csv', content)
if settings["fa_update_dhall"] == True:
print(' --- Aktualisierung der bffh.dhall')
fa_dhall_file = settings["fa_dhall_file"]
# Pfadangabe "fa_dhall_file" hat Inhalt
if len(fa_dhall_file) > 0:
# Daten schreiben
dhall_content = generate_bffh_dhall(export_all)
if len(dhall_content) > 0:
write_file(fa_dhall_file, dhall_content)
# Pfadangabe "fa_dhall_file" ist leer
else:
print('Einstellung "fa_dhall_file" ist leer, es wurde kein Pfad zur bffh.dhall angegeben.')
print('Bitte das Feld ausfüllen oder "fa_update_dhall" auf "False" setzen.')
# Mermaid-Code
if settings["generate_mermaid"] == True:
print(' --- Mermaid-Code erzeugen')
graphelements = graph_create_elements(machines)
mermaidcode = graph_create_mermaidcode(graphelements)
write_file('output/mermaid-code.txt', mermaidcode)
# ------------------------------------------------------------------
time_end = time.perf_counter()
time_span = round(time_end - time_start, 2)
print('-------------------------')
print(f'Laufzeit: {time_span} Sekunden')