diff --git a/config.py b/config.py index 922c80d..f2aad85 100644 --- a/config.py +++ b/config.py @@ -11,13 +11,17 @@ TODO: check lock safety """ import json import logging +import os import sys +from fasteners import interprocess_locked from configobj import ConfigObj from validate import Validator + +CONFIG_SUFFIX = os.environ.get('BOTSUFFIX', '') __initialized = False -__config_store = ConfigObj('local_config.ini', configspec='local_config.ini.spec') -runtime_config_store = ConfigObj('persistent_config.ini', configspec='persistent_config.ini.spec') +__config_store = ConfigObj('local_config{}.ini'.format(CONFIG_SUFFIX), configspec='local_config.ini.spec') +runtime_config_store = ConfigObj('persistent_config.ini'.format(CONFIG_SUFFIX), configspec='persistent_config.ini.spec') validator = Validator() result = __config_store.validate(validator) @@ -61,6 +65,7 @@ def runtimeconf_get(key, default=None): return runtime_config_store.get(key, default=default) +@interprocess_locked(runtime_config_store.filename) def runtimeconf_persist(): runtime_config_store.write() diff --git a/requirements.txt b/requirements.txt index daa54c1..bb8a682 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ +fasteners sleekxmpp configobj