/genconf

A simple-to-use, template-based configuration file generator that powers python/genshi/yaml

Primary LanguagePythonApache License 2.0Apache-2.0

= Features =
* Mixins (multiple inheritance between profiles)
* Output filenames can use profiles' properties (e.g. target/genconf/${profile}/igloofinder-config.properties)
* Automatic variables and functions:
** ${profile}
** ${truefalse(b)}
** ${either(b, 'val-if-true', 'val-if-false'}
* Override mechanism (~/.genconf-overrides.yaml) so that each user can have its own login/password/etc stuff

= Setup =
* sudo apt-get install python-setuptools python-pkg-resources python-yaml python-genshi python-argparse

= Create release =
bump version number in setup.py
git tag v0.x
git push origin master
git push origin --tags
./setup.py register sdist bdist_egg upload
re-create debian package (see genconf-debian project: https://github.com/iglootools/genconf-debian )

Backlog
=======
* Make most fields optional in the yaml config, and detect the default template type based on the file extension
* implement (inotify?) file system change notification mechanism to automatically re-generate the files
   Linux: inotify
   Windows: http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html

* Submit package to Ubuntu PPA/Debian
* Better open source documentation
* Better test coverage (check that the right events/listeners are called when errors happen, instead of having a manual examples/gc script)