Beryl::Config::Loader
Lit l'arborescence ~/.config/beryl/ et construit un Root exploitable.
Nouvelle arborescence (ADR-014) :
~/.config/beryl/ ├── _default.yml ├── .env.yml ├── <société>/ │ ├── _account.yml # optionnel : métadonnées société │ ├── <domaine>.yml │ ├── <domaine>/ # hosts directs + groupes │ │ ├── <host>.yml │ │ └── <groupe>/ │ │ ├── <host>.yml │ │ └── ... │ └── ... └── <autre société>/
Tolère les fichiers/dossiers absents : une société peut avoir un
seul domaine sans sous-dossier d'hosts, un _default.yml peut
manquer, etc. Seul ~/.config/beryl/ lui-même peut être absent (on
retourne un Root vide).
Class methods
Charge une arborescence à partir du chemin racine (typiquement
~/.config/beryl/). Retourne defaults + accounts + env_file.
Charge une société : son _account.yml éventuel + ses domaines.
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é .).
Charge _default.yml ou retourne un hash vide s'il n'existe pas.
Charge un domaine : son .yml + son dossier (hosts directs +
groupes + hosts dans groupes).
Scanne le dossier d'un domaine :
- Chaque
.ymlà la racine du dossier est UN host direct (sauf fichiers spéciaux_*.yml). - Chaque sous-dossier est un groupe. Son
.ymlde définition est le fichier<groupe>.ymlà côté du dossier.
Scanne le dossier d'une société pour identifier les domaines
(fichiers <domaine>.yml sauf _*.yml et fichiers cachés).