CCP (as I wrote about earlier) now has a project on savannah. It now works! It can be downloaded from the CVS repository. However, it doesn’t use libconf yet, and thus only supports key = value files. It also doesn’t know how to create the templates by itself so those have to be written by hand for now (but this should be easy(ish) to implement I think).
Like i said it currently supports key = value files. Any format will do. It can for instance handle any of the following:
$Key = Value;
$Key=Value
$Key='Value'
$Key="Value"
$Key ="Value"
Key = Value
Key=Value
# Comment
: Comment
; Comment
[Section header that gets ignored]
It doesn’t support comments on the same line as a config option, but this can probably be added at some later time. I haven’t written any documentation yet - but here’s the same usage sample I used before (edited to suit the way ccp now works).
/etc/example.conf:
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
/etc/example.conf.rpmnew:
# Example configuration file
SystemVersion = 0.1
Mode = private
Extensions = on
AllowUsers = yes
/usr/share/example/config.ccptemplate:
# Example configuration file
SystemVersion = {CCP::CONFIG:SystemVersion}
Mode = {CCP::CONFIG::Mode}
Extensions = {CCP::CONFIG::Extensions}
AllowUsers = {CCP::CONFIG::AllowUsers}
Command:
$ ccp --template /usr/share/example/config.ccptemplate --oldfile /etc/example.conf --newfile /etc/example.conf.rpmnew
Merging changes between "/etc/example.conf" and "/etc/example.conf.rpmnew"...done
Resulting /etc/example.conf:
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
AllowUsers = yes