diff options
author | Marko Kreen | 2011-01-17 14:47:56 +0000 |
---|---|---|
committer | Marko Kreen | 2011-01-17 14:47:56 +0000 |
commit | 3d58c48b9a5ea293e6d96986e070ff795bb0f0e3 (patch) | |
tree | a7eb33d6eee1bdeed31d617d0f3c55f72fc330a9 /python/skytools/config.py | |
parent | a9f89fb3611480f17cefaf312899280dc57a7a8d (diff) |
DBScript: allow override config parameters from command line (--set).
Diffstat (limited to 'python/skytools/config.py')
-rw-r--r-- | python/skytools/config.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/python/skytools/config.py b/python/skytools/config.py index 5f926758..8336c456 100644 --- a/python/skytools/config.py +++ b/python/skytools/config.py @@ -13,7 +13,7 @@ class Config(object): - Acceps defaults in get() functions. - List value support. """ - def __init__(self, main_section, filename, sane_config = 1, user_defs = {}): + def __init__(self, main_section, filename, sane_config = 1, user_defs = {}, override = {}): """Initialize Config and read from file. @param sane_config: chooses between ConfigParser/SafeConfigParser. @@ -35,6 +35,7 @@ class Config(object): self.main_section = main_section self.filename = filename self.sane_config = sane_config + self.override = override if sane_config: self.cf = ConfigParser.SafeConfigParser() else: @@ -53,10 +54,17 @@ class Config(object): self.cf.read(self.filename) if not self.cf.has_section(self.main_section): raise Exception("Wrong config file, no section '%s'" % self.main_section) + + # apply default if key not set for k, v in self.defs.items(): if not self.cf.has_option(self.main_section, k): self.cf.set(self.main_section, k, v) + # apply overrides + if self.override: + for k, v in self.override.items(): + self.cf.set(self.main_section, k, v) + def get(self, key, default=None): """Reads string value, if not set then default.""" try: |