1.0 KiB
1.0 KiB
Task 7: talk wrap
Blockiert durch: 04. Liefert: Befehlsummwicklung mit Ansage.
talk wrap -- <befehl> [args…]: führt Befehl aus (stdin durchreichen, stdout/stderr durchreichen), misst Dauer, Ansage nach Ende: Erfolg: „ erfolgreich. Dauer: X." / Fehler: „ fehlgeschlagen, Code N." — Label = Configwrap.labeloder der Basisname des Befehls; Ansage läuft über den Daemon-Pfad (enqueue, non-blocking;--wait-Flag respektiert).- Exit-Code des gewrappten Befehls wird durchgereicht (talk-Fehler ≠ Befehls-Fehler: wrap exited mit Befehls-Code; wenn die Ansage selbst scheitert: Warning auf stderr, Befehls-Code bleibt).
- Dauer-Formatierung: menschlich („3 Minuten 42 Sekunden", lokalisiert de/en nach langdetect des Labels).
- Tests: Unit für Formatierung + Prozessgrenze:
talk wrap -- sleep 1mit Fake/Sink null → enqueue-Call mit Erfolgs-Ansage verifiziert; fehlschlagender Befehl → Code 2 durchgereicht + Fehler-Ansage. - Abnahme:
talk wrap -- sleep 2annonciert Erfolg + Dauer; Exit-Codes korrekt.