diff --git a/cli.py b/cli.py index a9b64e7d1faa4d6ee3161360cd3382d311f99da0..d562c044460df253012aded3ed27abc22ffd4ee2 100755 --- a/cli.py +++ b/cli.py @@ -1,21 +1,40 @@ #!/usr/bin/env python3 import argparse +import logging import os import re import sys import yaml +from Attrap_bot import Attrap_bot + +# On paramètre le niveau de verbosité des logs +logging.basicConfig(level=os.environ.get('LOG_LEVEL', 'WARNING').upper()) +logger = logging.getLogger(__name__) + + def create_config(keys, value): - if type(value) == str: - value = value.replace('FalseFalse', False).replace(0, False).replace('False', False) - value = value.replace('TrueTrue', True).replace(1, True).replace('True', True) + if isinstance(value, str): + if value in ['FalseFalse', 'False', '0']: + value = False + if value in ['TrueTrue', 'True', '1']: + value = True if not keys[:-1] == []: return create_config(keys[:-1], {keys[-1]: value}) else: return {keys[-1]: value} -from Attrap_bot import Attrap_bot +def merge_dicts(a: dict, b: dict, path=[]): + for key in b: + if key in a: + if isinstance(a[key], dict) and isinstance(b[key], dict): + merge_dicts(a[key], b[key], path + [str(key)]) + elif a[key] != b[key]: + raise Exception() + else: + a[key] = b[key] + return a parser = argparse.ArgumentParser( prog='cli.py', @@ -45,7 +64,10 @@ else: if var.startswith('ATTRAP_BOT__'): key = var[12:].lower() value = os.environ[var] - config = config | create_config(re.split('__', key), value) + created_config = create_config(re.split('__', key), value) + config = merge_dicts(config, created_config) + + logging.debug(f'Configuration : {config}') bot = Attrap_bot(config) bot.analyze()