help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Need 'UncommentAndSetValue' or some such


From: David Scott Coburn
Subject: Need 'UncommentAndSetValue' or some such
Date: Tue, 25 Oct 2005 10:03:32 -0400
User-agent: KNode/0.8.2

In many of my cfagent script I have constructs like this:

editfiles:

        { /etc/postfix/main.cf
            BeginGroupIfNoSuchLine "mydestination = $(host), $(fqhost), 
localhost"
                DeleteLinesMatching "^mydestination.*"
                Append "mydestination = $(host), $(fqhost), localhost"
            EndGroup
            BeginGroupIfNoSuchLine "mydomain = $(domain)"
                DeleteLinesMatching "^mydomain.*"
                Append "mydomain = $(domain)"
            EndGroup
            DefineClasses "restart_postfix"
        }

The bit that bugs me the most about this construct is the repetition
of the text I am searching for and the text to replace it with.

What would be nifty would be something like this:

editfiles:

        { /etc/postfix/main.cf
            UncommentAndSetValue "mydestination ="  "$(host), $(fqhost), 
localhost"
            UncommentAndSetValue "mydomain =" "$(domain)"
            DefineClasses "restart_postfix"
        }

The first argument would be the variable that get its value changed,
and the second argument would be what it gets set to.

If the value was already set then nothing would happen.  If a variable was
changed then the DefineClass would happen.  If the variable was commented out
then it would be uncommented and set to the given value.

It seems like this kind of setting of variables in config files to some
value is half of what I use cfengine for and this would be a whole lot
easier to set up and then maintain.

Perhaps there is already a better way to do it that I have not found in
the manual yet?

Thanks,

Scott

-- 
* David Scott Coburn
* Brookhaven National Laboratory
* scott@bnl.gov 631.344.7110
* "Assume a spherical cow of uniform density..."


reply via email to

[Prev in Thread] Current Thread [Next in Thread]