[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..."
- Need 'UncommentAndSetValue' or some such,
David Scott Coburn <=