changeset 6:ee6bf617f839

Implement configuration file reading.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 04 Jul 2016 12:53:11 +0300
parents 9d4152f32223
children f2ecfb3e04ee
files multimerge.py
diffstat 1 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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())