module

Beryl::CLI

Point d'entrée CLI de beryl.

Tous les chemins de configuration partent de $XDG_CONFIG_HOME/beryl/ (= ~/.config/beryl/ par défaut, conforme à la https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[spec XDG Base Directory]). -c PATH override explicitement, typiquement pour des tests. Structure figée (voir docs/adr/ADR-014-beryl-config-tree.adoc) :

~/.config/beryl/ _default.yml # socle FreeBSD (sans clés SSH) .env.yml # credentials providers par domaine <domaine>.yml # identité d'un domaine (clés SSH, ovh.ssh_key_name) <domaine>/ # contenu du domaine (hosts directs, groupes) <host>.yml # → <host>.<domaine> <groupe>.yml + <groupe>/<host>.yml

Migration depuis v0.2.0 : avant le 8 mai 2026, beryl utilisait +~/.beryl/+ (non-XDG). Pour migrer : mv ~/.beryl ~/.config/beryl.

Constants

GLOBAL_FLAGS_WITH_VALUE = {"-c", "--config", "--transport"}

Options globales qui consomment l'argument suivant (forme « -c VALEUR »).

SUBCOMMAND_ALIASES = {"h" => "help", "i" => "init", "ap" => "add-provider", "ad" => "add-domain", "ls" => "list-hosts", "sh" => "show", "r" => "rescue", "bh" => "boot-hd", "w" => "wipe", "b" => "bootstrap", "fi" => "follow-install", "s" => "scan", "a" => "apply", "pr" => "prep-rescue", "bs" => "bake-seed", "u" => "unlock", "rb" => "reboot", "st" => "status", "te" => "tang-enroll", "e" => "env", "v" => "version"}

Table des alias courts → nom long. Chaque sous-commande est adressable via une forme courte (mémoire feedback_cli_short_flags). Si name est déjà un nom long, retourné tel quel.

Class methods

default_config_root

Racine de config par défaut (dynamique : honore $XDG_CONFIG_HOME si défini au runtime). Voir Beryl::Xdg.config_dir.

Source
extract_account_flag(args : Array(String)) : String | Nil

Même idée pour --account=X. Utilisé par show qui ne passe pas par un OptionParser dédié.

Source
extract_domain_flag(args : Array(String)) : String | Nil

Extrait --domain=X d'un tableau d'arguments sans le consommer (helper pour les sous-commandes qui veulent y accéder avant le parser OptionParser complet). Version très simple, limitée à --domain=X pour l'instant.

Source
run(argv : Array(String) = ARGV) : Int32
Source

Nested types