fabaccess-config-generator/config-generator.py

67 lines
1.6 KiB
Python
Raw Normal View History

2025-02-08 14:01:17 +01:00
__version__ = '2025.2'
2024-05-04 13:20:05 +02:00
2025-02-08 14:01:17 +01:00
import os
import sys
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 *
2025-02-08 14:01:17 +01:00
app_path = os.path.dirname(os.path.realpath(__file__))
input_file = os.path.join(os.path.dirname(__file__), 'maschinenliste.csv')
2024-05-04 13:20:05 +02:00
2025-02-08 14:01:17 +01:00
# CLI Parameter
if len(sys.argv) > 0:
for arg in sys.argv:
if 'file=' in arg:
input_file = arg.replace('file=', '')
2024-05-04 13:20:05 +02:00
# Output-Ordner anlegen
2025-02-08 14:01:17 +01:00
print('Erzeuge Konfiguration\n|')
2024-05-04 13:20:05 +02:00
directory = "output"
path = Path(directory)
path.mkdir(parents=True, exist_ok=True)
2025-02-08 14:01:17 +01:00
print(f'|- Datei = {input_file}')
2024-05-04 13:20:05 +02:00
# Maschinenliste einlesen
machines = import_machines(input_file)
# Rollen für FabAccess 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
2025-02-08 14:01:17 +01:00
# ------- Daten exportieren
2024-05-04 13:20:05 +02:00
2025-02-08 14:01:17 +01:00
# Textdatei mit komplettem dhall-Inhalt
create_singledhall(export_roles, export_machines, export_actors, export_actorconnections)
2024-05-04 13:20:05 +02:00
2025-02-08 14:01:17 +01:00
# Rollenliste als CSV
create_roles_csv(roles)
2024-05-04 13:20:05 +02:00
2025-02-08 14:01:17 +01:00
# Einzelne DHALLs
create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections)
2024-05-04 13:20:05 +02:00
# Mermaid-Code
2025-02-08 14:01:17 +01:00
create_mermaid(machines)
2024-05-04 13:20:05 +02:00
2025-02-08 14:01:17 +01:00
# ----------------------
2024-05-04 13:20:05 +02:00
time_end = time.perf_counter()
time_span = round(time_end - time_start, 2)
2025-02-08 14:01:17 +01:00
print('---------')
print(f'Laufzeit: {time_span} Sekunden')