> AAA+++ to cyr_conf! I'll write it up :) I think we want it to have the > following spec: > > * cyr_conf - output all configuration variables and their current value > * cyr_conf -C $file - as above with the following config file > * cyr_conf -n $name - all configuration variables for process $name > (eg cyr_conf -n imapd => show imapd overrides where given) > * cyr_conf -q - only show variables that are different than default > > - those three can be mixed and matched > > * cyr_conf -D - show all the DEFAULT variables. Obviously, ignores all > other options! > >> That way cyrus-imapd or the init script >> could check whether both configs match enough and they action or refuse >> to >> start if they don't match. > > Cool. > >> The config file should not only include >> configurable options but also internal options like what I did with the >> sieve_version to reflect internal changes. Cyrus-imapd does handles a >> lot >> of those changes on the fly but not all, live upgrading sieve scripts, >> and >> those should be found in the configs. > > Yep, definitely. Store them all, and refuse to start unless: > cyr_conf -C $oldfile is the same output as cyr_conf with the > -C option passed to 'master'. Spit out an error message > describing what's different and how to fix it. Hi Bron, cyr_conf sounds good :) For the "refuse to start", do you think it should be integrated into master or being kept in the init script? What would be very cool is a detect feature which detects things like database config from the configdir. That way it could also override configuration settings from the config files on startup and log about it. It sounds a bit dangerous, what do you think? Simon ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html