aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornico <nico@magicbroccoli.de>2020-02-17 02:05:33 +0100
committernico <nico@magicbroccoli.de>2020-02-17 02:05:44 +0100
commitcf0357197e27d9cb4bf5039606c4b255e1943f46 (patch)
tree8eb9f9d15fd0dbeaaccde3b42f1bd6df4aca3f8f
parent89176536adad6e16de10f16cc56826814a90d02e (diff)
config file location overwrite
+ add environment toggle to overwrite the config directory setting ejabberd_metrics_dev to 1 / true -> set the config path inside the dev directory
-rw-r--r--config.py18
-rw-r--r--ejabberd-metrics.conf.default (renamed from config_example.json)0
2 files changed, 11 insertions, 7 deletions
diff --git a/config.py b/config.py
index 55b7639..da20e66 100644
--- a/config.py
+++ b/config.py
@@ -2,15 +2,19 @@
# -*- coding: utf-8 -*-
import json
import sys
+from os import environ
from pathlib import Path
class Config:
def __init__(self):
- # global config path
- conf_path = '/etc/ejabberd-metrics.conf'
- self.file = Path(conf_path)
+ # class variables
self.content = None
+ self.conf_file = Path('/etc/ejabberd-metrics.conf')
+
+ # dev config overwrite
+ if environ.get('ejabberd_metrics_dev'):
+ self.conf_file = Path('config.json')
# read config file
self._read()
@@ -20,7 +24,7 @@ class Config:
self._check()
# open and load json content from config
- with open(self.file, 'r', encoding='utf-8') as f:
+ with open(self.conf_file, 'r', encoding='utf-8') as f:
try:
self.content = json.load(f)
@@ -32,13 +36,13 @@ class Config:
def _check(self):
"""internal method to check if the config file exists"""
try:
- # if file is present try to read it's contents
- if self.file.exists():
+ # if file is present continue
+ if self.conf_file.exists():
return
# if not create a blank file
else:
- Path.touch(self.file)
+ self.conf_file.touch(mode=0o640)
# catch permission exceptions as this tries to write to /etc/
except PermissionError as err:
diff --git a/config_example.json b/ejabberd-metrics.conf.default
index ad984aa..ad984aa 100644
--- a/config_example.json
+++ b/ejabberd-metrics.conf.default