Dienstprogramm zum rekursiven Verarbeiten von Textdateivorlagen und zum Ausfüllen von Platzhaltern

Ich suche ein Tool, das:

  • gratis
  • frei von Abhängigkeiten (kein Skriptsprachen-Interpreter nötig, ...)
  • vorzugsweise eine einzelne Binärdatei
  • läuft unter Linux, optional Windows
  • eine (Unter-)Verzeichnisstruktur durchlaufen und alle Dateien mit einer bestimmten Erweiterung verarbeiten
  • Ersetzen Sie alle Platzhalter durch ihren Wert, den es aus einer strukturierten Datei abruft (jeweils json, xml, key=value oder CSV).
  • Schreibausgabe in eine Datei mit identischem Dateinamen, aber entfernter Erweiterung
  • vorzugsweise Open Source und aktiv gepflegt

Das Dienstprogramm könnte wie folgt ausgeführt werden:

pt /var/opt/configfiles .template values.properties

Eine Vorlage könnte /var/opt/configfiles/fooapp/basic.conf.template mit folgendem Inhalt heißen:

Say hello to ${Name}

Value.properties könnte so aufgebaut sein:

Name=me
Age=18

Nachdem das Tool fertig war hätte ich eine basic.conf.

Ich weiß, dass dies mit sed oder awk möglich ist. Ich könnte das auch selbst in Golang schreiben, aber beide Ansätze sind nicht das, wonach ich suche.

Ich weiß nicht, ob es ein gebrauchsfertiges Tool für Ihre ganz speziellen Anforderungen gibt ... Aber können Sie erklären, warum diese Ansätze (einige Skriptzeilen) nicht das sind, wonach Sie suchen?
@RoVo zwei Hauptgründe: persönliche Vorlieben und die optionale Anforderung einer plattformübergreifenden Unterstützung. Falls Sie ein Skript anbieten können: Je nach Implementierung könnte dies eine akzeptable Lösung sein
Python wäre plattformübergreifend. Windows 10 kann auch ein Bash-Skript ausführen, wenn es installiert ist ... Dies kann ein zweizeiliges Bash-Skript sein.
@RoVo Die Firma, bei der ich arbeite, hat kein Python unter Linux installiert und ich möchte keine Reihe von Abhängigkeiten installieren. Unter Windows ist es undenkbar, Python oder ein Bash-Äquivalent zu installieren. Wir hatten einmal Cygwin, aber es musste entfernt werden, und trotzdem haben wir nur Windows 7

Antworten (1)

Dieses Dienstprogramm scheint viel von dem zu bieten, wonach ich suche: https://github.com/gomatic/renderizer

Es kann dies nicht alleine tun:

  • Verzeichnisse durchlaufen
  • Erstellen Sie Ausgabedateien mit einem Namen, der die Vorlagenerweiterung ausschließt

Die Wertelistendatei kann nur yaml sein, aber das ist kein wirkliches Problem

Es ist akzeptabel und hilfreich, Ihre eigene Antwort zu akzeptieren. Damit helfen Sie anderen in Zukunft.