Heh - just use "set_variable_values" from cfengine_stdlib.cf! Or see how it is done there - it's rather clever (I wish I thought of it :-)
-Dan > Forum: Cfengine Help > Subject: Looking for suggestions on ordering > Author: Authority > Link to topic: https://cfengine.com/forum/read.php?3,17628,17628#msg-17628 > > Normal ordering for edit_line bundles puts insert_lines before replace_patter > ns. For my current problem, I'm trying to reverse them. > > Given a simple syntax like this: > > option = value > > I would like to check that the option exists and simply replace the current v > alue with the new value and if the option doesn't exist, add the line. This > is problematic though because the syntax of my files are flexible regarding w > hite space but insert_lines is not. If my insert_lines promiser does not hav > e any whitespace around the equals sign but the file does, or if the option i > s indented, even though the option and value are as they should be, Cfengine > will insert a new line. Replace_patterns is powerful enough to handle and pr > eserve whitespace but I'm having trouble stopping the insert_line from happen > ing after replace_patterns has already done its work. I only want the insert > _line to happen if the replace_pattern couldn't find and replace the value. > > I've found that a replace_patterns promise that doesn't match anything (and t > hus doesn't replace anything) is still marked as kept, which I can kind of un > derstand (nothing to do is just as good as already being done), but it makes > it very hard to determine if replace_patterns took any action. > > I've tried setting a class at the start of the bundle that blocked the insert > _lines promises and was cancelled by replace_patterns, but that class was rea > ctivated when the bundle was re-evaluated so my inserts never happened. > > I'm not going to argue that the normal ordering be changed as I think for mos > t cases, it is optimal already, but I'm wondering if a new promise result cla > ss attribute (for use in class bodies) might be worthwhile, something along t > he lines of match_found, that would activate classes if the regex in the curr > ent promise succeeded. > > Has anyone else dealt with such ordering issues? Any suggestions/tricks on h > ow to do this? > > _______________________________________________ > Help-cfengine mailing list > Help-cfengine@cfengine.org > https://cfengine.org/mailman/listinfo/help-cfengine _______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine