Try looking at the set-variable bundle in the standard library

M

Diego Zamboni wrote:
> Hi,
> 
> I've been working on putting together an edit_line bundle that does
> the following:
> 
> - If a certain pattern exists, replace it with a given string
> - If the pattern does not exist, add the line to the file.
> 
> Below is what I came up with, which works, but somehow feels inelegant
> because I have to pass it the filename for the check using regline. I
> tried doing it by setting different classes in the replace_patterns:
> and insert_lines: sections, but could not get it to work.
> 
> I would appreciate any ideas! I am just learning cfengine, so this is
> as much an intellectual exercise as something I need (and maybe could
> be a useful addition to the stdlib?)
> 
> Thanks,
> --Diego
> 
> 
> bundle edit_line replace_or_add(file,pattern,line)
> {
> classes:
>   "lineexists" expression => regline("$(pattern)","$(file)");
> 
> replace_patterns:
>   lineexists::
>   "${pattern}"
>   replace_with => value("${line}");
> 
> insert_lines:
>   !lineexists::
>   "${line}";
> 
> }
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine

-- 
Mark Burgess

-------------------------------------------------
Professor of Network and System Administration
Oslo University College, Norway

Personal Web: http://www.iu.hio.no/~mark
Office Telf : +47 22453272
-------------------------------------------------
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to