class

Beryl::Apply::Resolver

Inherits Reference < Object

Résout l'ensemble des recettes à exécuter pour un host et leur ordre.

Entrées :

  • host_dir : dossier d'orchestration du host (~/.config/beryl/<société>/<domaine>/<host>/). Les *.yml qu'il contient sont les recettes explicitement demandées.
  • central_dir : dossier recipes/ du dépôt central (~/.config/beryl/recipes/recipes/).

Étapes :

  1. Scan de host_dir → recettes demandées.
  2. Fermeture transitive des requires: — pour chaque recette R, on cherche R.yml d'abord dans host_dir (override), sinon dans central_dir. Introuvable → RecipeNotFound.
  3. Tri topologique (Kahn) : les dépendances sortent avant leurs dépendants. Tri alphabétique à indegree égal pour un ordre déterministe.
  4. Cycle → Cycle (liste des recettes impliquées).

Constructors

new(host_dir : String, central_dir : String)
Source

Instance methods

resolve

Retourne les recettes dans l'ordre d'exécution (dépendances d'abord). Liste vide si le dossier host n'existe pas ou ne contient aucune recette.

Source
scan_host_dir

Noms des recettes explicitement demandées (fichiers *.yml du dossier host), triés.

Source

Nested types