module

Beryl::CLI::Scope

Portée des commandes « un serveur » (rescue, bootstrap, dns, reboot…) : un serveur, ou plusieurs — liste a,b,c, groupe, domaine, société, comme apply ou info (Info.scoped_hosts). Plusieurs serveurs : la commande est REJOUÉE pour chacun, l'un après l'autre, avec les mêmes options (questions, confirmations, essai à blanc et journal restent ceux de la commande), puis un résumé.

Tolère les espaces après les virgules : le shell coupe ah, be, ga en ah, be, ga, recollés en ah,be,ga.

Instance methods

fan_out(cmd : String, config_root : String, args : Array(String), positional : Array(String), fresh_only : Bool = false, & : Array(String) -> Int32) : Int32 | Nil

Si la portée désigne PLUSIEURS serveurs (ou une liste), rejoue la commande pour chacun via le bloc (qui reçoit les arguments, la portée remplacée par société/domaine/serveur) et renvoie le code final ; nil si la portée est UN serveur ou n'est pas reconnue — la commande suit alors son cours normal (et donne son erreur habituelle). Élément inconnu dans une liste : erreur.

fresh_only (commandes qui EFFACENT les disques : wipe, bootstrap) : sur plusieurs serveurs, tous doivent être encore installed: false ; un seul serveur installé dans la portée → refus de TOUTE la portée, avant de commencer (une confusion anciens/production n'efface rien). Un serveur nommé seul reste possible, installé ou non.

Source
fanning?
Source
join_list(positional : Array(String)) : Array(String)

Recolle les positionnels de tête coupés aux virgules par le shell (["ah,", "be,", "ga", "x"] → ["ah,be,ga", "x"]). Pur.

Source
parts(scope : String) : Array(String)

Éléments d'une portée (a,b,,c → [a, b, c]). Pur.

Source
run_each(cmd : String, scope : String, refs : Array(String), base : Array(String), & : Array(String) -> Int32) : Int32

Rejoue la commande pour chaque serveur, à la suite ; résumé à la fin. Code : 0 si tout a réussi, sinon celui du premier échec.

Source
warn(message : String) : Nil
Source
warnings_line(warned : Hash(String, Array(String))) : String

no (reverse IPv6), be (…) : serveur court + avertissements. Pur.

Source
without_scope(args : Array(String), count : Int32, positional : Array(String)) : Array(String)

args sans les count premiers positionnels (la portée, éventuellement coupée en plusieurs morceaux par le shell). Pur.

Source