print more useful errors when the config file format is invalid, and update the configspec generator to know that our undefined default keybindings are now '' instead of None

This commit is contained in:
Chris Jones 2010-01-10 17:36:55 +00:00
parent b7fa984a52
commit 27d0a13330
1 changed files with 7 additions and 4 deletions

View File

@ -52,7 +52,7 @@ import platform
import os import os
import sys import sys
from copy import copy from copy import copy
from configobj.configobj import ConfigObj from configobj.configobj import ConfigObj, flatten_errors
from configobj.validate import Validator from configobj.validate import Validator
from borg import Borg from borg import Borg
from factory import Factory from factory import Factory
@ -317,10 +317,8 @@ class ConfigBase(Borg):
section = {} section = {}
for key in DEFAULTS['keybindings']: for key in DEFAULTS['keybindings']:
value = DEFAULTS['keybindings'][key] value = DEFAULTS['keybindings'][key]
if value is None: if value is None or value == '':
continue continue
elif isinstance(value, tuple):
value = value[0]
section[key] = 'string(default=%s)' % value section[key] = 'string(default=%s)' % value
configspecdata['keybindings'] = section configspecdata['keybindings'] = section
@ -369,6 +367,11 @@ class ConfigBase(Borg):
if result != True: if result != True:
err('ConfigBase::load: config format is not valid') err('ConfigBase::load: config format is not valid')
for (section_list, key, other) in flatten_errors(parser, result):
if key is not None:
print('[%s]: %s is invalid' % (','.join(section_list), key))
else:
print ('[%s] missing' % ','.join(section_list))
for section_name in self.sections: for section_name in self.sections:
dbg('ConfigBase::load: Processing section: %s' % section_name) dbg('ConfigBase::load: Processing section: %s' % section_name)