help-cfengine
[Top][All Lists]
Advanced

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

Re: Feature request: Ability to parse files with a custom parser


From: nathan r. hruby
Subject: Re: Feature request: Ability to parse files with a custom parser
Date: Tue, 22 Feb 2005 12:07:13 -0500 (EST)

On Tue, 22 Feb 2005, Knut Auvor Grythe wrote:

On Wed, Feb 16, 2005 at 01:24:40PM +0100, Knut Auvor Grythe wrote:
What we would like to see, is an option in copy for using a custom parser,
like so:

copy:
    all::
        /path/to/sshd_config.m4
            dest=/etc/ssh/sshd_config
            parsecmd=/local/admin/bin/m4wrap

If we implemented this and submitted a patch, would it be accepted? We
would really like this feature, but we do not wish to become dependent
on local patches.



Chiming in late (and a newbie so everything I say could be wrong :)

Could you not move much of the "if newer, then build" logic into a
Makefile which then would call m4 as needed as the component parts are
updated?

If so then I think basically having a copy: section to fetch the m4 and
config bits from a central place to a configroot, then a shellcommand: to
run "make" in the directory which should regen all your files, and then
another copy: to copy from the configroot to live locations might do it.

I think the snippet would look something like this (again, newbie, so
please don't try this on something that matters :)

control:
        actionsequence = ( copy.fromrepo shellcommands copy shellcommands )

copy:
        fromrepo::
                $(remoteconfigroot)     dest=$(localconfigroot)
                                        server=$(server)
                                        define=genconf
                                        #blah
        tolive::
                /etc/somefile           dest=$(localconfigroot)
                                        define=restartServiceX
                # yaddah

# The docs are sparse on how define= works in a shellcommand, I'm assuming
# here that it means define if shellcommand returns 0 and that
# $(makewrapper) runs make in the right place and returns the right values :)
shellcommands:
        genconf::
                "$(makewrapper)" define=tolive
        restartServiceX::
                "$(initbase)/serviceX restart"

I theory, I think this will achive what you want with less klutz in the
conf file...

HTH (and if this is totally out of wack, somone please tell me!)

-n

--
-------------------------------------------
nathan hruby <nhruby@uga.edu>
uga enterprise information technology services
production systems support
metaphysically wrinkle-free
-------------------------------------------




reply via email to

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