From d82744488951d55d5e5a95b41136a5719d8c5534 Mon Sep 17 00:00:00 2001 From: nico Date: Fri, 6 Mar 2020 11:58:01 +0100 Subject: yaml config + implement yaml config file parsing * update default config file * update global config file from .conf to .yml ( debatable ) Signed-off-by: nico --- config.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'config.py') diff --git a/config.py b/config.py index da20e66..20793e8 100644 --- a/config.py +++ b/config.py @@ -1,20 +1,23 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -import json import sys from os import environ from pathlib import Path +from ruamel.yaml import YAML +from ruamel.yaml.parser import ParserError +from ruamel.yaml.scanner import ScannerError + class Config: def __init__(self): # class variables self.content = None - self.conf_file = Path('/etc/ejabberd-metrics.conf') + self.conf_file = Path('/etc/ejabberd-metrics.yml') # dev config overwrite if environ.get('ejabberd_metrics_dev'): - self.conf_file = Path('config.json') + self.conf_file = Path('config.yml') # read config file self._read() @@ -23,13 +26,13 @@ class Config: """init the config object with this method""" self._check() - # open and load json content from config + # open file as an iostream with open(self.conf_file, 'r', encoding='utf-8') as f: try: - self.content = json.load(f) + self.content = YAML(typ='safe').load(f) # catch json decoding errors - except json.JSONDecodeError as err: + except (ParserError, ScannerError) as err: print(err, file=sys.stderr) exit(1) -- cgit v1.2.3-18-g5258