From e8435a0445727554cb8a37845572544e160dbeb6 Mon Sep 17 00:00:00 2001 From: Stephan Gabler Date: Thu, 26 Apr 2012 09:42:25 +0200 Subject: [PATCH] make update of new settings a bit more general and remove some whitespace * config.update(default_config) does not work, would overwrite all values --- jrnl.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/jrnl.py b/jrnl.py index bfcaa7fb..fc7216a7 100755 --- a/jrnl.py +++ b/jrnl.py @@ -155,7 +155,7 @@ class Journal: self.config['password'] = None # This password doesn't work. if attempts < 3: print("Wrong password, try again.") - else: + else: print("Extremely wrong password.") sys.exit(-1) journal = decrypted @@ -230,7 +230,7 @@ class Journal: filename = filename or self.config['journal'] journal = os.linesep.join([str(e) for e in self.entries]) if self.config['encrypt']: - journal = self._encrypt(journal) + journal = self._encrypt(journal) with open(filename, 'w') as journal_file: journal_file.write(journal) @@ -341,24 +341,28 @@ def setup(): default_config['highlight'] = False open(default_config['journal'], 'a').close() # Touch to make sure it's there - + # Write config to ~/.jrnl_conf with open(CONFIG_PATH, 'w') as f: json.dump(default_config, f, indent=2) config = default_config if password: - config['password'] = password + config['password'] = password return config if __name__ == "__main__": - + if not os.path.exists(CONFIG_PATH): config = setup() else: with open(CONFIG_PATH) as f: config = json.load(f) - if not 'highlight' in config: - config['highlight'] = False + + # update config file with settings introduced in a later version + missing_keys = set(default_config).difference(config) + if missing_keys: + for key in missing_keys: + config[key] = default_config[key] with open(CONFIG_PATH, 'w') as f: json.dump(config, f, indent=2)