Added a set_key setter method that can also write out the changes to file
[electrum-nvc.git] / lib / simple_config.py
1 import json
2 import os
3
4 class SimpleConfig:
5   default_options = {"gui": "lite"}
6
7   def set_key(self, key, value, save = True):
8     self.config[key] = value
9     if save == True:
10       self.save_config()
11
12   def save_config(self):
13     f = open(self.config_file_path(), "w+")
14     f.write(json.dumps(self.config))
15
16   def load_config(self):
17     f = open(self.config_file_path(), "r")
18     file_contents = f.read()
19     if file_contents:
20       self.config = json.loads(file_contents)
21     else:
22       self.config = self.default_options
23       self.save_config()
24   
25   def config_file_path(self):
26     return "%s" % (self.config_folder + "/config.json")
27
28   def __init__(self):
29     # Find electrum data folder
30     if "HOME" in os.environ:
31       self.config_folder = os.path.join(os.environ["HOME"], ".electrum")
32     elif "LOCALAPPDATA" in os.environ:
33       self.config_folder = os.path.join(os.environ["LOCALAPPDATA"], "Electrum")
34     elif "APPDATA" in os.environ:
35       self.config_folder = os.path.join(os.environ["APPDATA"], "Electrum")
36     else:
37       raise BaseException("No home directory found in environment variables.")
38
39     # Read the file
40     if os.path.exists(self.config_file_path()):
41       self.load_config()
42     else:
43       self.config = self.default_options
44       self.save_config()
45