feat: drop-in support for custom templates
User templates can now be added without rebuilding: drop a script into ~/.config/motd-assist/templates/ and reference it from a preset via "install": "<filename>". Same-name files override built-ins; new files are picked up by the running TUI via 'r'. `motd-assist templates` lists known templates and creates the drop-in directory. Apply plans now embed the resolved template content (Plan.ResolveContents) so the sudo/root process never needs to read user config; snapshots store installed script content so restore works under sudo as well. Validation rejects plans with unresolved content.
This commit is contained in:
parent
d56659e21a
commit
303c49b484
10 changed files with 375 additions and 48 deletions
28
README.md
28
README.md
|
|
@ -68,8 +68,32 @@ motd-assist restore # letzten Apply zurücksetzen
|
|||
|
||||
Die Array-Reihenfolge bestimmt die MOTD-Reihenfolge. Nicht gelistete System-Scripte
|
||||
bleiben unverändert; nicht mehr benötigte gebündelte Scripte werden beim Preset-Wechsel
|
||||
entfernt. `install` referenziert eine gebündelte Vorlage (`brand-header`,
|
||||
`sysinfo-panel`, `footer`).
|
||||
entfernt. `install` referenziert eine Vorlage – siehe nächster Abschnitt.
|
||||
|
||||
## Eigene Vorlagen (Drop-in)
|
||||
|
||||
Vorlagen, die Presets über `"install"` referenzieren, können ohne Rebuild ergänzt
|
||||
werden: Datei in den Drop-in-Ordner legen, fertig.
|
||||
|
||||
```sh
|
||||
motd-assist templates # zeigt Ordner (legt ihn an) + bekannte Vorlagen
|
||||
~/.config/motd-assist/templates/mein-header # eigene Vorlage (POSIX sh)
|
||||
```
|
||||
|
||||
Anschließend im Preset referenzieren:
|
||||
|
||||
```json
|
||||
{ "name": "10-mein-header", "enabled": true, "install": "mein-header" }
|
||||
```
|
||||
|
||||
- Der Dateiname im Drop-in-Ordner ist der Vorlagenname; gleichnamige Dateien
|
||||
überdecken die Built-ins (`brand-header`, `sysinfo-panel`, `footer`).
|
||||
- Neue/geänderte Vorlagen übernimmt die laufende TUI mit `r`.
|
||||
- Installierte Scripte aus Vorlagen gelten als von motd-assist verwaltet
|
||||
(Preset-Wechsel räumt sie wieder ab, `restore` kennt ihren Inhalt).
|
||||
- Technisch: Der Apply-Plan bettet den Vorlageninhalt ein. Das Auflösen
|
||||
passiert im unprivilegierten Kontext; der sudo-Prozess muss die
|
||||
User-Konfiguration nicht lesen können.
|
||||
|
||||
## Entwicklung
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue