Change default config handling.

Now the default config only gets applied (and written to disk) when no
config file doesn't exist yet.
This commit is contained in:
Florian Bruhin 2014-01-22 16:52:35 +01:00
parent 97c6d9f1c9
commit 47c3866f51

View File

@ -33,16 +33,26 @@ class Config(ConfigParser):
"""configdir: directory to store the config in"""
super().__init__()
self.optionxform = lambda opt: opt # be case-insensitive
self.read_dict(default_config)
self.configdir = configdir
self.configfile = os.path.join(self.configdir, self.FNAME)
if not os.path.isfile(self.configfile):
self.init_config()
logging.debug("Reading config from {}".format(self.configfile))
self.read(self.configfile)
def init_config(self):
logging.info("Initializing default config.")
if not os.path.exists(self.configdir):
os.makedirs(self.configdir, 0o755)
cp = ConfigParser()
cp.optionxform = lambda opt: opt # be case-insensitive
cp.read_dict(default_config)
with open(self.configfile, 'w') as f:
cp.write(f)
def save(self):
if not os.path.exists(self.configdir):
os.makedirs(self.configdir, 0o755)
logging.debug("Config directory does not exist, created.")
logging.debug("Saving config to {}".format(self.configfile))
with open(self.configfile, 'w') as f:
self.write(f)