from pathlib import Path import os, json class Config: CONF_DIR=os.path.join(os.environ['HOME'],".clusterman/") CONF_FILE=os.path.join(CONF_DIR,"clusterman.json") DEFAULT_CONFIG = { "paths": { "nodes": os.path.join(CONF_DIR,"nodeslist.json") }, "cluster": { "ip4_from": "10.128.0.133", "ip4_to": "10.128.0.140", "ip4_ignore": ["10.0.0.5", "10.0.0.1"] } } def __init__(self): Path(self.CONF_DIR).mkdir(parents=True, exist_ok=True) self.config=self.DEFAULT_CONFIG self.load() def load(self): if os.path.exists(self.CONF_FILE): with open(self.CONF_FILE) as f: self.config=json.load(f) else: self.save() def save(self): with open(self.CONF_FILE, "w") as f: f.write(json.dumps(self.config)) def __getitem__(self, key): return self.config[key] def __setitem__(self, key, value): self.config[key]=value CONF=Config()