Forum: Cfengine Help
Subject: Re: Edit region of file - remove existing content
Author: phnakarin
Link to topic: https://cfengine.com/forum/read.php?3,18633,20840#msg-20840
Anyhow, I tried to reproduce the error from this thread. It turned out to be
working fine for me in 3.1.4
Here is my test code;
bundle agent test_region
{
files:
"/tmp/test_dest.txt"
comment => "Test, insert stuff into selected region of file",
# edit_line => insert_between_region_001("## CF3 PROTECTED AREA DO NOT EDIT
##","/tmp/test_insert.txt");
edit_line => insert_between_region_002("## CF3 PROTECTED AREA DO NOT EDIT
##","## END CF3 PROTECTED AREA DO NOT EDIT ##", "/tmp/test_insert.txt");
}
####################
bundle edit_line insert_between_region_001(delim,insert_file)
{
delete_lines:
".*"
select_region => start_end("$(delim)","$(delim)"),
delete_select => example_001("$(delim)");
insert_lines:
"$(insert_file)"
select_region => start_end("$(delim)","$(delim)"),
insert_type => "file";
}
#
bundle edit_line insert_between_region_002(sdelim,edelim,insert_file)
{
delete_lines:
".*"
select_region => start_end("$(sdelim)","$(edelim)"),
delete_select => example_002("$(sdelim)","$(edelim)");
insert_lines:
"$(insert_file)"
select_region => start_end("$(sdelim)","$(edelim)"),
insert_type => "file";
}
#
body delete_select example_001(s)
{
delete_if_not_match_from_list => { @(s) };
}
#
body delete_select example_002(s1,s2)
{
delete_if_not_match_from_list => { "$(s1)","$(s2)" };
}
#
body select_region start_end(start,end)
{
select_start => "$(start)";
select_end => "$(end)";
include_start_delimiter => "false";
include_end_delimiter => "false";
}
####################
Please correct me if I did something wrong.
Cheers,
--Nakarin
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine