module

Beryl::CLI::Env

beryl env — gestion des credentials chiffrés par société.

Trois sous-commandes :

migrate [<société>...] Convertit .env.yml[société] en <société>/.env.toml.age chiffré. edit <société> Ouvre le coffre dans $EDITOR, re-chiffre. show <société> Affiche le plaintext (debug, hors prod).

Le coffre est chiffré au roster global secrets (~/.config/secrets/recipients.toml) — un roster par société viendra quand Secrets::Recipients acceptera un path optionnel.

Constants

ERR_MARKER = "#!ERR"

Préfixe des lignes de NOTE injectées dans l'éditeur quand le TOML est invalide (boucle d'édition de env edit). Retirées avant tout chiffrement → jamais sauvegardées dans le coffre.

USAGE = "USAGE : beryl env <SOUS-COMMANDE> [args]\n\nSOUS-COMMANDES :\n migrate [<société>...] Migre .env.yml[société] vers <société>/.env.toml.age\n edit <société> Édite le coffre d'une société dans $EDITOR\n show <société> Affiche le plaintext du coffre (debug, à éviter en prod)\n set <société> <SECTION.VAR> Pose une variable, valeur lue sur l'ENTRÉE (tube), jamais affichée\n get <société> <SECTION.VAR> Écrit une variable sur la sortie (pour un tube : empreinte…)\n\nLe coffre est chiffré au roster `secrets` global. Lancer\n`secrets init` une fois sur ce poste si ce n'est pas déjà fait."

Class methods

insert_var(plaintext : String, section : String, var : String, value : String) : String | Nil

Insère var = value dans la section [section] du TOML plaintext (créée à la fin si absente), sans toucher au reste ni aux commentaires. nil si la variable existe déjà dans la section. Pur.

Source
split_var(path : String) : Tuple(String, String) | Nil

« section.VAR » → {section, VAR} ; noms simples seulement. Pur.

Source
strip_error_notes(s : String) : String

Retire les lignes de note d'erreur (préfixe ERR_MARKER) injectées par la boucle d'édition de cmd_edit — elles ne doivent JAMAIS finir chiffrées.

Source

Instance methods

run(config_root : String, argv : Array(String)) : Int32

Point d'entrée appelé par cli.cr.

Source