Frej Rasmussen <[EMAIL PROTECTED]> writes: > > Description : Libconf is a wrapper to the main configuration files > > of the system. It's made of a generic parser and many specialized > > templates > > So why reinvent the wheel? > http://www.gnome.org/projects/gst/structure.html > > The backend scripts are independant and talks XML to the GUI (or > whatever you could think of) it's even implemented in perl.
we do neither want to reinvent the wheel nor want to parse xml everywhere but we do want (sometimes in the future) to: - centralize parsing templates, - alter config files without totaly over-writing them (aka keep user comments & order and better tool interoperability) > Also a gui configurator might sound 'nice' from a coders view, but > it totally breaks any we (at least me) never plan to use it. we only want to have a better data layer / gui layer separation. it can only increase tool quality to have a better mvc than to have more or less robust parsing stiff in each tool that need it. currently, we have: - centralized shell-like file parsing (either csh or sh variants) in perl-MDK-Common (used by quite a lot of tools) where a simple hash map the "var=value" from the file - some kind of directives-like parsing in printerdrake - some kind of various "let rewrite it on saving" file formats parsing (eg: python func calls in draksec, ...) - some less than totally robusts "a la win3.1 .ini files" parsing in drakboot for autologin settings for kdm & gdm in drakboot having a working template for reading ini files[1] would enable to have some quite much robust parsing engine for drakboot and other tools that need it, both enforcing values saving safety and not altering uneeded bits of the files. the libconf purpose is only to have a centralized file parsing & altering engine that is both robust and respectful towars other config tool and users [1] ex (from /usr/share/config/kdm/kdmrc): [X-:0-Core] Authorize=true AutoLogin1st=true AutoLoginEnable=false AutoLoginUser= Reset=/etc/X11/xdm/TakeConsole Setup=/etc/X11/xdm/Xsetup_0 Startup=/etc/X11/xdm/GiveConsole
