summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBotond Hende <nettingman@gmail.com>2024-10-22 21:00:40 +0200
committerBotond Hende <nettingman@gmail.com>2024-10-22 21:00:40 +0200
commit58d23f1f010e5d58b8d9296dae27988c939a53b1 (patch)
treeea12ecb6b11e5831d4182d5cff8a1027e97c33dd /modules
parentb52373f67c830786542b72da96e57b1924a97583 (diff)
default config file and user override
Diffstat (limited to 'modules')
-rw-r--r--modules/config.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/modules/config.py b/modules/config.py
new file mode 100644
index 0000000..602ec8d
--- /dev/null
+++ b/modules/config.py
@@ -0,0 +1,27 @@
+import __main__
+import os.path
+
+import yaml
+
+class Config:
+ def __init__(self):
+ self.intents_dir = ""
+ self.applications_dir = ""
+
+ def update(self, **entries):
+ self.__dict__.update(entries)
+
+ if not self.intents_dir.startswith("/"):
+ self.intents_dir = os.path.join(os.path.dirname(__main__.__file__), self.intents_dir)
+
+def load_config():
+ config = Config()
+ with open(os.path.join(os.path.dirname(__main__.__file__), "config.yaml")) as stream:
+ config.update(**yaml.safe_load(stream))
+
+ user_config = os.path.join(os.environ["HOME"], ".config", "hestia", "config.yaml")
+ if os.path.exists(user_config):
+ with open(user_config) as stream:
+ config.update(**yaml.safe_load(stream))
+
+ return config \ No newline at end of file