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
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to