module

Beryl::Config::Loader

Class methods

defaults_path(dir : String) : String

Chemin du fichier de défauts d'un dossier : _defaults.yml (nouveau, PLURIEL — un fichier contient PLUSIEURS défauts) s'il existe, sinon _default.yml (legacy). Permet le renommage progressif.

Source
load(root_path : String) : Result

Charge une arborescence à partir du chemin racine (typiquement ~/.config/beryl/). Retourne defaults + accounts + env_file.

Source
load_account(name : String, path : String) : Account

Charge une société : son défaut + ses domaines. Le défaut société est _default.yml (nouvelle convention « _default.yml par dossier »), sinon _account.yml (ancien nom, rétro-compat).

Source
load_accounts(root : String) : Hash(String, Account)

Scanne le dossier racine et charge les sociétés. Une société = un sous-dossier du root, sauf les dossiers réservés (nom commençant par _, nom caché .).

Source
load_defaults(path : String) : Hash(YAML::Any, YAML::Any)

Charge le fichier de défauts ou retourne un hash vide s'il n'existe pas.

Source
load_domain(account_dir : String, name : String) : Domain

Charge un domaine name : son raw depuis <name>/_default.yml (nouveau) sinon <name>.domain.yml (ancien) ; ses hosts/groupes depuis le dossier <name>/.

Source
load_domain_contents(domain_dir : String) : Tuple(Hash(String, HostNode), Hash(String, Group))

Scanne le dossier d'un domaine :

  • *.host.yml à la racine = host direct ;
  • chaque SOUS-DOSSIER = un groupe (réglages : <groupe>/_defaults.yml, membres : ses *.host.yml) ;
  • refusés, avec la correction à faire : un sous-dossier à point (un sous-domaine se range À CÔTÉ de son parent), un groupe du nom d'un host du domaine, un ancien <groupe>.group.yml.
Source
load_domains(account_dir : String) : Hash(String, Domain)

Domaines d'une société, découverts par NOM = union :

  • des SOUS-DOSSIERS <domaine>/ (nouvelle convention : le dossier EST le domaine, son défaut est <domaine>/_default.yml) ;
  • des fichiers <domaine>.domain.yml (ancien, rétro-compat). Hors _*, fichiers/dossiers cachés, et sous-dossiers SANS point (un domaine est un FQDN ; recipes/info sont des dossiers de service).
Source
load_group(domain_dir : String, group_name : String) : Group

Charge un groupe : ses réglages <groupe>/_defaults.yml (ou _default.yml ; optionnel) + ses hosts (<groupe>/*.host.yml).

Source
parse_yaml_hash(path : String) : Hash(YAML::Any, YAML::Any)

Parse un fichier YAML attendu à la racine comme un hash.

Source

Nested types