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