# HG changeset patch # User Matti Hamalainen # Date 1467625991 -10800 # Node ID ee6bf617f839402be5fcc73cb44318ae3618e1c4 # Parent 9d4152f32223473e2e6500e82eac3f4e5c278fc6 Implement configuration file reading. diff -r 9d4152f32223 -r ee6bf617f839 multimerge.py --- a/multimerge.py Mon Jul 04 12:52:00 2016 +0300 +++ b/multimerge.py Mon Jul 04 12:53:11 2016 +0300 @@ -201,6 +201,13 @@ else: return None + def mread(self, cfgparser, sect): + for name in self.m_saveable: + if cfgparser.has_option(sect, name): + value = cfgparser.get(sect, name) + self.mset(name, value) + gcm_debug("{0} -> '{1}' == {2}".format(name, value, self.mget(name))) + ### ### Main program starts @@ -233,6 +240,19 @@ cfg.mdef("secret_file", True, gcm_is_filename, None, "client_secret.json") cfg.mdef("credential_file", True, gcm_is_filename, None, "client_credentials.json") + +## Read, parse and validate configuration file +if len(sys.argv) > 1: + gcm_debug("Reading configuration from '{0}'.".format(sys.argv[1])) + try: + cfgparser = ConfigParser.RawConfigParser() + cfgparser.read(sys.argv[1]) + except Exception as e: + gcm_fatal("Failed to read configuration file '{0}': {1}".format(sys.argv[1], str(e))) + + # Parse the settings and validate + cfg.mread(cfgparser, section) + ## Initialize and authorize API connection credentials = gcm_get_credentials(cfg) http = credentials.authorize(httplib2.Http())