Michael Potter <mega...@gmail.com> writes:

> I believe the problem is this expression:
>
> "^(smtp_host)\s+.*$" replace_with => value("$(match.1) $(smtp)"),
>
> Because you use a .* after the whitespace, the regex will continue to match
> after any replacement occurs.
>
> Try using a negative lookahead assertion:
>
> "^(smtp_host)\s+(?!$(smtp))$"
>
> This will ensure the pattern only matches when smtp_host is *not* followed
> by $(smtp), so after the first replacement occurs, the regex will no longer
> match and will be convergent.

Thanks, it looks like the match must be greedy.

With the normal ordering of edit_line, I finish to delete_lines that do
not match and then insert_lines.

Thanks.
-- 
Daniel Dehennin
Récupérer ma clef GPG:
gpg --keyserver pgp.mit.edu --recv-keys 0x6A2540D1

Attachment: pgpFbjr5ft6gd.pgp
Description: PGP signature

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to