Beryl
Constants
Largeur cible en caractères pour aligner le compteur [NNNs] en fin
de ligne sur toutes les sous-commandes (rescue, bootstrap, …). Le
padding se fait par String#size pour éviter que printf %-Ns
(octets UTF-8) fausse l'alignement des tirets cadratins.
Lue au compile-time depuis shard.yml via le macro read_file.
Cf. note mémoire feedback_shard_version_macro.md (mémoire ALOLI).
Class methods
Formate une cible SSH pour les logs de façon uniforme. Trois cas :
-
Pas de divergence entre fqdn et ssh_host :
rails01.aloli.net -
Provider hébergeur qui impose un nom différent (typiquement OVH
ovh.service_name). On annonce le couple « FQDN logique côté provider » :rails01.aloli.net (= ns1234.ip-51-83-6.eu côté ovh) -
Override
ssh_host:explicite côté YAML — l'opérateur a posé une valeur (test local, VPN, alias DNS interne). Pas de mention de provider, qui serait sémantiquement faux pourprovider: localou un provider sans notion de nom hébergeur :clientvm.test (via 127.0.0.1)
Horodatage sensible à la locale, utilisé par les logs de toutes les
sous-commandes. On détecte uniquement le français (LANG/LC_TIME qui
commence par fr) et on retombe sur l'ISO 8601 sinon : deux formats
suffisent pour l'usage de beryl, pas de dépendance à un moteur i18n.
fr→20/04/2026 21h35m12- autre →
2026-04-20 21:35:12
Affiche une ligne de log avec un compteur [NNNs] en fin de ligne,
rafraîchi chaque seconde par un fiber pour montrer que le process
est vivant pendant une opération longue. La ligne est tenue en
place (retour chariot \r) jusqu'à ce que le bloc retourne, puis
saute à la ligne suivante avec le temps final figé.
Sur exception, on affiche ✗ + le temps final avant de laisser
l'exception remonter. Le fiber est toujours libéré (ensure).
Utilisé par toutes les sous-commandes pour unifier la progression visuelle :
beryl rescue: polling task OVH + attente SSHberyl boot-hd: idemberyl bootstrap: étapes 1-6 du flux mfsBSD-in-QEMU
Exemple : Beryl.log_step("beryl rescue", "OVH : tâche #12345 en doing") do # ... long polling ... end
Pade une ligne de log jusqu'à width caractères (par défaut
STEP_LINE_WIDTH) pour aligner le compteur [NNNs] à droite.
Utilise String#size (caractères) et non String#bytesize, sinon
les tirets cadratins UTF-8 faussent l'alignement.
Construit la commande shell à afficher à la fin d'un --dry-run
pour que l'utilisateur voie exactement quoi relancer (copy-paste
friendly). Retire les flags --dry-run / -n des args originaux
et concatène d'éventuels arguments additionnels (ex: --hostname
pour scan, qui a pu être résolu interactivement pendant le dry-run).
Philippe 23 avril 2026 : option B — zéro automatisme, zéro clic enchaîné, l'utilisateur lit et relance lui-même.