[Wellington-pm] Complex config files
Srdjan
srdjan at catalyst.net.nz
Wed May 13 18:26:54 PDT 2009
I'm not sure it is recommended to edit a YAML file, I think it is
possible to introduce invisible errors. But there's a number of
Config::* modules, and of course venerable Dumper -> eval solution.
Martyn Smith wrote:
> Your new format looks very close to YAML :-) (see the YAML) module
>
> Perhaps you just want to use that as your config format?
>
> On Thu, May 14, 2009 at 01:13:32PM +1200, Lesley Longhurst wrote:
>
>> Hi all,
>> Some of you may remember a while ago I brought in some code from work to
>> talk about, and it was based around a truly hideous config file.
>>
>> I'm now working on replacing some of that stuff with a new script, and
>> the time has come to invent a better config file format. So, I'm
>> interested in recommendations for a good module to use for reading and
>> writing complex config files.
>>
>> Ideally, such a module would meet the following requirements:
>> - well-documented
>> - currently supported
>> - a usable version available in a Debian package for Etch
>>
>> and the config file itself needs to
>> - be easily read and edited by humans
>> - support repeated sub-sections
>> - allow multiple entries for parameters within the same section and
>> sub-section
>> - allow for lots of comments
>>
>> Any suggestions?
>>
>> By way of example, I've attached a first cut of the sort of thing I'm
>> thinking of (and for your amusement I've also attached a fragment of the
>> existing config file that I derived it from.)
>>
>>
>> --
>> Lesley Longhurst (previously Walker)
>> Linux Systems Administrator
>> Opus International Consultants Ltd
>> Email lesley.longhurst at opus.co.nz
>> Tel +64 4 471 7002, Fax +64 4 473 3017
>> http://www.opus.co.nz
>> Level 9 Majestic Centre, 100 Willis Street, PO Box 12 343
>> Wellington, New Zealand
>>
>>
>>
>
>
>> # ------------------------------------------------------------------------
>> # <informational comments etc>
>> # ------------------------------------------------------------------------
>> Hosts,"COMMON UTILS",<an external command that generates a list>
>> Include(zzsv01|zysv01),,--delete,"Utils",office/branchapp/cad_deploy/utils
>>
>> Include(zzsv01),,--delete,"OpusCAD partial menu",office/branchapp/opuscad
>> Include(zysv01),,--delete,"Standard AutoCAD",office/branchapp/acad
>>
>> # -- OpusNetSoftwareUpdateEngine (SUE) - 50M
>> # SUE is needed by sites that use Microstran or Google Sketchup.
>> # Since it's small and developed in-house, it can go to all BOS servers
>> Include,,--delete,"SUE",office/branchapp/OpusNetSoftwareUpdateEngine
>>
>> # ------------------------------------------------------------------------
>> # <informational comments etc>
>> # ------------------------------------------------------------------------
>> # -- dwgtrueconvert2007 - 34M
>> Hosts,"DWG VIEWERS ETC FOR ALL",<an external command that generates a list>,(zzsv01),(zysv01)
>> Include,,--delete,"dwgtrueconvert2007",office/branchapp/cad_deploy/dwgtrueconvert2007
>> Exclude,,,,office/branchapp/cad_deploy/dwgtrueconvert2007/AdminImage/Log/*
>> Include,,,,office/branchapp/cad_deploy/dwgtrueconvert2007/AdminImage/Log/some.file.or.other
>>
>> # -- dwgtrueview2009 - 195M
>> Include,,--delete,"dwgtrueview2009",office/branchapp/cad_deploy/dwgtrueview2009
>> Exclude,,,,office/branchapp/cad_deploy/dwgtrueview2009/AdminImage/Log/*
>>
>> # -- object_enablers - 47M
>> Include,,--delete,"object_enablers",office/branchapp/cad_deploy/object_enablers
>> Exclude,,,,office/branchapp/cad_deploy/object_enablers/AdminImage/Log/*
>>
>
>
>> # ------------------------------------------------------------------------
>> # <informational comments etc>
>> # ------------------------------------------------------------------------
>> label: COMMON UTILS
>> servers: <an external command that generates a list>
>>
>> include: office/branchapp/cad_deploy/utils
>> description: Utils
>> rsync_flags: --delete
>> exclude-server: zzsv01
>> exclude-server: zysv01
>>
>> include: office/branchapp/opuscad
>> description: OpusCAD partial menu
>> rsync_flags: --delete
>> exclude-server: zzsv01
>>
>> include: office/branchapp/acad
>> description: Standard AutoCAD
>> rsync_flags: --delete
>> exclude-server: zysv01
>>
>> include: office/branchapp/OpusNetSoftwareUpdateEngine
>> description: OpusNetSoftwareUpdateEngine (SUE)
>> comment: SUE is needed by sites that use Microstran or Google Sketchup.
>> comment: Since it's small and developed in-house, it can go to all BOS servers
>> size: 50M
>> rsync_flags: --delete
>>
>> # ------------------------------------------------------------------------
>> # <informational comments etc>
>> # ------------------------------------------------------------------------
>> label: DWG VIEWERS ETC FOR ALL
>> servers: <an external command that generates a list>
>> servers: <whitespace-separated list>
>> exclude-server: zzsv01
>> exclude-server: zysv01
>>
>> include: office/branchapp/cad_deploy/dwgtrueconvert2007
>> description: dwgtrueconvert2007
>> size: 34M
>> rsync_flags: --delete
>> exclude: office/branchapp/cad_deploy/dwgtrueconvert2007/AdminImage/Log/*
>> include: office/branchapp/cad_deploy/dwgtrueconvert2007/AdminImage/Log/some.file.or.other
>>
>> include: office/branchapp/cad_deploy/dwgtrueview2009
>> description: dwgtrueview2009
>> size: 195M
>> rsync_flags: --delete
>> exclude: office/branchapp/cad_deploy/dwgtrueview2009/AdminImage/Log/*
>>
>> include: office/branchapp/cad_deploy/object_enablers
>> description: object_enablers
>> size: 47M
>> rsync_flags: --delete
>> exclude: office/branchapp/cad_deploy/object_enablers/AdminImage/Log/*
>>
>
>
>> _______________________________________________
>> Wellington-pm mailing list
>> Wellington-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/wellington-pm
>>
>
>
More information about the Wellington-pm
mailing list