comparison multimerge.py @ 89:d68acec7cb99

Require configuration file.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 26 Jul 2016 15:58:34 +0300
parents 1d7d4dc5cf68
children a348dfa6b132
comparison
equal deleted inserted replaced
88:1d7d4dc5cf68 89:d68acec7cb99
374 #cfg.mdef("scope", False, None, None, "https://www.googleapis.com/auth/calendar.readonly") 374 #cfg.mdef("scope", False, None, None, "https://www.googleapis.com/auth/calendar.readonly")
375 cfg.mdef("secret_file", True, cfg.is_filename, None, "client_secret.json") 375 cfg.mdef("secret_file", True, cfg.is_filename, None, "client_secret.json")
376 cfg.mdef("credential_file", True, cfg.is_filename, None, "client_credentials.json") 376 cfg.mdef("credential_file", True, cfg.is_filename, None, "client_credentials.json")
377 377
378 378
379 ## Check arguments
380 if len(sys.argv) <= 1:
381 gcm_fatal(u"No configuration file specified.\nUsage: {0} <configfile>".format(sys.argv[0]))
382
383
379 ## Read, parse and validate configuration file 384 ## Read, parse and validate configuration file
380 if len(sys.argv) > 1: 385 gcm_debug(3, u"Reading configuration from '{0}'.".format(sys.argv[1]))
381 gcm_debug(3, u"Reading configuration from '{0}'.".format(sys.argv[1])) 386 try:
382 try: 387 cfgparser = ConfigParser.RawConfigParser()
383 cfgparser = ConfigParser.RawConfigParser() 388 cfgparser.readfp(codecs.open(sys.argv[1], "r", "UTF-8"))
384 cfgparser.readfp(codecs.open(sys.argv[1], "r", "UTF-8")) 389 except Exception as e:
385 except Exception as e: 390 gcm_fatal(u"Failed to read configuration file '{0}': {1}".format(sys.argv[1], str(e)))
386 gcm_fatal(u"Failed to read configuration file '{0}': {1}".format(sys.argv[1], str(e))) 391
387 392 # Check that the required section exists
388 # Check that the required section exists 393 section = "gcm"
389 section = "gcm" 394 if not cfgparser.has_section(section):
390 if not cfgparser.has_section(section): 395 gcm_fatal(u"Invalid configuration, missing '{0}' section.".format(section))
391 gcm_fatal(u"Invalid configuration, missing '{0}' section.".format(section)) 396
392 397 # Debug setting is a special case, we need to get it
393 # Debug setting is a special case, we need to get it 398 # set before everything else, so do it here ..
394 # set before everything else, so do it here .. 399 if cfgparser.has_option(section, "debug"):
395 if cfgparser.has_option(section, "debug"): 400 cfg.mset("debug", cfgparser.get(section, "debug"))
396 cfg.mset("debug", cfgparser.get(section, "debug")) 401
397 402 # Parse the settings and validate
398 # Parse the settings and validate 403 cfg.mread(cfgparser, section)
399 cfg.mread(cfgparser, section)
400 404
401 405
402 ## Validate settings 406 ## Validate settings
403 if cfg.email: 407 if cfg.email:
404 if cfg.email_subject == None or len(cfg.email_subject) == 0: 408 if cfg.email_subject == None or len(cfg.email_subject) == 0: