Evaluierung: Bash-only Reimplementierung des Generators #3

Closed
opened 2026-05-31 18:19:29 +02:00 by holm · 0 comments
Owner
Kriterium Bewertung
Aufwand █████████░ 9/10
Nutzen ██████░░░░ 6/10
Bruchhäufigkeit ███░░░░░░░ 3/10
Nachhaltigkeit ███████░░░ 7/10
Dringlichkeit ██░░░░░░░░ 2/10

Idee

Den Generator vollständig in Bash reimplementieren — keine Python-Abhängigkeit, läuft überall wo Bash + Basis-UNIX-Tools vorhanden sind.

Motivation

  • Kein Python-Venv / pip nötig
  • Einfachere Deployment-Story (rsync + cron reicht)
  • Passt zum holm-Toolstack (Bash-first)

Kernfrage: Templating

Jinja2-Syntax in Bash ist nicht trivial. Optionen:

Option A — Jinja2-kompatibler Parser in Bash

  • {{ var }}, {% for %}, {% if %} in Bash/awk parsen
  • Separates Projekt: bash-jinja o.ä.
  • Pro: bestehende Templates weiternutzbar
  • Con: erheblicher Aufwand, Randfälle (Filter, Makros) schwer vollständig

Option B — Eigene einfache Template-Syntax

  • @@VAR@@ oder {{VAR}} nur für Variablen-Substitution via sed/envsubst
  • Schleifen als Shell-Loops, die Template-Fragmente zusammensetzen
  • Pro: einfach, robust, wartbar
  • Con: Inkompatibel zu bestehenden Jinja2-Templates → Neuentwicklung der Templates nötig

Option C — m4 als Makro-Präprozessor

  • Etabliertes UNIX-Tool, mächtig, aber eigene Syntax
  • Pro: kein eigener Parser nötig
  • Con: steile Lernkurve, m4-Syntax ist gewöhnungsbedürftig

Aufgaben

  • Proof of Concept: Episodenliste + eine Episode-Seite in Bash generieren (Option B)
  • RSS-Feed in Bash (heredoc + sed/awk) generieren
  • Entscheidung: eigenes Projekt bash-jinja starten oder bei Option B bleiben
  • Performance-Test bei großem Podcast-Archiv (100+ Episoden)
| Kriterium | Bewertung | |---|---| | Aufwand | █████████░ 9/10 | | Nutzen | ██████░░░░ 6/10 | | Bruchhäufigkeit | ███░░░░░░░ 3/10 | | Nachhaltigkeit |███████░░░ 7/10 | | Dringlichkeit | ██░░░░░░░░ 2/10 | ## Idee Den Generator vollständig in Bash reimplementieren — keine Python-Abhängigkeit, läuft überall wo Bash + Basis-UNIX-Tools vorhanden sind. ## Motivation - Kein Python-Venv / pip nötig - Einfachere Deployment-Story (rsync + cron reicht) - Passt zum holm-Toolstack (Bash-first) ## Kernfrage: Templating Jinja2-Syntax in Bash ist nicht trivial. Optionen: ### Option A — Jinja2-kompatibler Parser in Bash - `{{ var }}`, `{% for %}`, `{% if %}` in Bash/awk parsen - Separates Projekt: `bash-jinja` o.ä. - Pro: bestehende Templates weiternutzbar - Con: erheblicher Aufwand, Randfälle (Filter, Makros) schwer vollständig ### Option B — Eigene einfache Template-Syntax - `@@VAR@@` oder `{{VAR}}` nur für Variablen-Substitution via `sed`/`envsubst` - Schleifen als Shell-Loops, die Template-Fragmente zusammensetzen - Pro: einfach, robust, wartbar - Con: Inkompatibel zu bestehenden Jinja2-Templates → Neuentwicklung der Templates nötig ### Option C — `m4` als Makro-Präprozessor - Etabliertes UNIX-Tool, mächtig, aber eigene Syntax - Pro: kein eigener Parser nötig - Con: steile Lernkurve, m4-Syntax ist gewöhnungsbedürftig ## Aufgaben - [ ] Proof of Concept: Episodenliste + eine Episode-Seite in Bash generieren (Option B) - [ ] RSS-Feed in Bash (heredoc + sed/awk) generieren - [ ] Entscheidung: eigenes Projekt `bash-jinja` starten oder bei Option B bleiben - [ ] Performance-Test bei großem Podcast-Archiv (100+ Episoden)
holm 2026-05-31 18:20:05 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Zentonic/zentonic-publisher#3
No description provided.