1#######################################################
2#
3# Delete a line using a list, all of which don't match
4#
5#######################################################
6
7body common control
8{
9      inputs => { "../../default.cf.sub" };
10      bundlesequence  => { default("$(this.promise_filename)") };
11      version => "1.0";
12}
13
14#######################################################
15
16bundle agent init
17{
18  vars:
19      "states" slist => { "actual", "expected" };
20
21      "actual" string =>
22      "header
23header
24BEGIN
25    One potato
26    Two potato
27    Three potatoe
28    Four
29END
30trailer
31trailer";
32
33      "expected" string =>
34      "header
35header
36BEGIN
37    One potato
38    Two potato
39    Three potatoe
40    Four
41END
42trailer
43trailer";
44
45  files:
46      "$(G.testfile).$(states)"
47      create => "true",
48      edit_line => init_insert("$(init.$(states))"),
49      edit_defaults => init_empty;
50}
51
52bundle edit_line init_insert(str)
53{
54  insert_lines:
55      "$(str)";
56}
57
58body edit_defaults init_empty
59{
60      empty_file_before_editing => "true";
61}
62
63#######################################################
64
65bundle agent test
66{
67  vars:
68      "tstr" slist => { "eade", "EGI", "ND" };
69
70  files:
71      "$(G.testfile).actual"
72      edit_line => test_delete(".*potat.*", "@(test.tstr)");
73
74}
75
76bundle edit_line test_delete(str, match)
77{
78  delete_lines:
79      "$(str)"
80      delete_select => test_match(@{match});
81}
82
83body delete_select test_match(m)
84{
85      delete_if_contains_from_list => { @{m} };
86}
87
88#######################################################
89
90bundle agent check
91{
92  methods:
93      "any" usebundle => dcs_check_diff("$(G.testfile).actual",
94                                            "$(G.testfile).expected",
95                                            "$(this.promise_filename)");
96}
97
98### PROJECT_ID: core
99### CATEGORY_ID: 27
100