Beryl::CLI::SessionLog
Journal de session : par défaut, toute commande beryl qui agit sur le parc
écrit sa sortie (et ce qui s'affiche dans le terminal : questions,
réponses, sortie des commandes distantes) dans un fichier de
<état>/logs/ (~/.local/state/beryl/logs/, cf. Beryl::Xdg.state_dir).
--no-log, n'importe où sur la ligne, désactive le journal.
Mécanique (shard session-log, extrait d'ici) : beryl se RELANCE lui-même,
le parent ne fait qu'enregistrer — sous script(1) dans un terminal (vrai
terminal gardé à l'enfant), par recopie écran + fichier sinon. Restent ICI
les règles propres à beryl : quoi journaliser (wanted?), le libellé
(label), la portée dans le nom du fichier et le dossier d'état XDG.
L'enfant reçoit BERYL_SESSION_LOG (chemin du journal) : il ne se relance
pas une seconde fois, et ses propres enfants (tâches détachées) non plus.
Jamais journalisées : l'aide, la lecture locale de la config, et surtout
les commandes où l'on SAISIT des secrets (coffre, clés d'API) — un
journal ne doit pas devenir une copie du coffre. Fichiers 0600 dans un
dossier 0700 ; journaux de plus de KEEP_DAYS jours effacés à chaque
nouvelle session journalisée.
Constants
Sous-commandes en essai à blanc par défaut (--apply pour agir).
Sous-commandes (noms longs) jamais journalisées.
Instance methods
Réglages du shard pour beryl : nom, version, dossier, variable héritée
(BERYL_SESSION_LOG, lue aussi par Beryl.log_step), rétention.
Libellé de la commande dans le nom du journal : upgrade-dry-run pour un
essai à blanc, upgrade quand elle agit (--apply ; -W/--write-to
pour scan, qui l'implique), upgrade-status pour --status (lecture
de l'état d'une tâche). Les commandes sans --apply gardent leur nom. Pur.
<dossier>/2026-10-20--23-40-28--upgrade-dry-run--aloli.net.log : date,
heure, libellé de la commande, puis la portée (premier argument qui n'est
pas une option), réduite aux caractères sûrs dans un nom de fichier. Pur.
Relance beryl (argv complet, options globales comprises) sous journal
et renvoie son code de sortie ; le chemin du journal est rappelé sur
stderr à la fin (shard session-log).
Retire --no-log d'argv (où qu'il soit). Renvoie {argv nettoyé, journal
refusé ?}. Pur.