check config for duplicate repo settings

This commit is contained in:
lilydjwg 2013-08-22 00:01:06 +08:00
parent 61b26bd712
commit 970ca2eaa9

View file

@ -12,16 +12,25 @@ enable_pretty_logging(logging.DEBUG)
from repomon import repomon
def main(conffile):
config = configparser.ConfigParser(default_section='multi')
config.read(conffile)
def check_and_get_repos(config):
repos = config['multi'].get('repos', 'repository')
for field in ('name', 'path'):
if config['multi'].get(field, None) is not None:
raise ValueError('The config %r cannot have default value.' % field)
raise ValueError('config %r cannot have default value.' % field)
repos = {repo.strip() for repo in repos.split(',')}
for field in ('name', 'path'):
vals = [config[repo].get(field) for repo in repos]
if len(vals) != len(set(vals)):
raise ValueError('duplicate %s in different repositories.' % field)
return repos
def main(conffile):
config = configparser.ConfigParser(default_section='multi')
config.read(conffile)
repos = check_and_get_repos(config)
repos = [repo.strip() for repo in repos.split(',')]
notifiers = [repomon(config[repo]) for repo in repos]
ioloop = IOLoop.instance()