As my first entry, let me define the situation a bit.
I am currently involved with a great Open Source project called WorldFor ge. I'm a newb, so I tackled a relatively small chunk of the project - varconf. Varconf is a configuration library, originally created by sdt for STAGE, WorldForge's primary server application. Varconf is small but quite functional and I am having a blast with it.
Varconf is designed to input configuration data from config files, environment variables or the command-line. It also has callback support to inform an application of a settings change.
Since I took over the library, I have made the following enhancements/changes to varconf:
- Adopted libsigc++ for callbacks.
- Added support for sections (as in a standard config file section) in command-line arguments.
- Implemented the environment variable input method (wasn't written yet when I took over the library)
- General code clean-up, commenting and what-not.
Not much but it is a start. Some future ideas I've come up with/had suggested to me:
- Enhance the data manipulation interface - currently there is no method for deleting an individual item or section from a config database.
- Re-implement the "Observer" class - Observers in Varconf were auto-update objects that stored a copy of a single config item for quick access. There were some problems with the implementation so I removed them temporarily.
- Convert the file parser to lex/yacc - I have some concerns but if doable, this would make the parser far easier to work with.
- Add an interface for warnings - currently, if erroroneous data appears that varconf can handle without dying, it does so without a complaint. Keeps the lib simple but makes reporting typos and the like difficult.
More will come with time I'm sure. That is all.