class

Beryl::Apply::LineInFile

Inherits Beryl::Apply::Primitive < Reference < Object

Primitive line-in-file : garantit qu'UNE ligne est présente dans un fichier EXISTANT, sans réécrire le reste — pour régler un fichier du système (ou d'un paquet) en gardant son contenu d'origine (ex. la ligne root: de /etc/mail/aliases, à côté des alias système).

Sans match : ajoute line à la fin si elle est absente. Avec match (expression régulière) : la PREMIÈRE ligne qui correspond est remplacée par line (les suivantes qui correspondent sont retirées) ; aucune ne correspond → line ajoutée à la fin. Mode et propriétaire du fichier sont conservés. Fichier absent → échec (ce n'est pas un file-write).

- line-in-file:
    path: /etc/mail/aliases
    match: '^root:'
    line: "root: admin@example.net"

Class methods

ensure_line(content : String, line : String, match : String | Nil) : String

Contenu après garantie de la ligne. Pur, exposé pour test.

Source

Instance methods

apply(shell : Shell, params : Hash(String, YAML::Any), dry_run : Bool, context : Context) : StepResult

params est le hash brut du step YAML (ex: {"packages" => [...]}), déjà interpolé par l'Executor. context porte les infos dérivées du host (cf. Context).

Source
name

Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).

Source
systems

Portable : FreeBSD et Linux.

Source