# RepoVizChecker Ein Python-Werkzeug zum Abgleich von **RepoViz-Annotationen** mit dem tatsächlich verwendeten SQL-Code in Kornshell-Skripten (`.ksh`). --- ## Beschreibung KSH-Skripte enthalten häufig RepoViz-Metadaten in Form von Kommentar-Annotationen: ```ksh #@modul: mein_skript.ksh #@quelle: TABELLE_A, TABELLE_B #@ziel: TABELLE_Z ``` `repovizcheck.py` liest diese Annotationen aus und vergleicht sie mit den Tabellennamen, die im Code über `$SCHEMA.` bzw. `${SCHEMA}.` tatsächlich referenziert werden. --- ## Features - ✅ Liest `#@modul:`, `#@quelle:` und `#@ziel:` Annotationen aus dem KSH-Skript - ✅ Erkennt verwendete Tabellen per Regex (`$SCHEMA.*` / `${SCHEMA}.*`) - ✅ Vergleich **Repo → SQL**: Sind alle dokumentierten Tabellen im Code vorhanden? - ✅ Vergleich **SQL → Repo**: Sind alle Code-Tabellen in den Annotationen dokumentiert? - ✅ Prüft, ob der Skriptname in `#@modul:` eingetragen ist - ✅ Encoding-Fallback: UTF-8 → ISO-8859-1 - ✅ Temporäre Tabellen (`TMP_*`) werden automatisch ignoriert --- ## Voraussetzungen - Python 3.x - Keine zusätzlichen Pakete erforderlich (nur Standardbibliothek) --- ## Aufruf ```powershell python repovizcheck.py ``` ### Beispiel ```powershell python repovizcheck.py C:\projekte\etl_job.ksh ``` --- ## Ausgabe (Übersicht) | Abschnitt | Beschreibung | |---|---| | **RepoViz-Informationen** | Sortierte Ausgabe von Modul, Quell- und Zieltabellen | | **Modul-Check** | Ist der Skriptname in `#@modul:` eingetragen? | | **Repo → SQL** | Welche dokumentierten Tabellen sind im Code vorhanden / fehlen? | | **SQL → Repo** | Welche Code-Tabellen sind dokumentiert / nicht dokumentiert? | --- ## Hinweise - Es werden ausschließlich `.ksh`-Dateien akzeptiert (case-insensitive). - Tabellennamen werden für alle Vergleiche in **Großbuchstaben** normalisiert. --- ## Lizenz Internes Werkzeug – Deutsche Telekom AG