[Wellington-pm] Complex config files

Martyn Smith martyn at catalyst.net.nz
Wed May 13 18:18:02 PDT 2009


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

-- 
Martyn Smith

Senior Developer
Catalyst IT
http://www.catalyst.net.nz

DDI: +64 4 802 0420
Mail: martyn at catalyst.net.nz


More information about the Wellington-pm mailing list