51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
import os, re
|
|
from configparser import ConfigParser
|
|
|
|
CONFIG_DIR = os.environ['HOME'] + '/.config/inverter-bot'
|
|
CONFIG_FILE = 'config.ini'
|
|
|
|
__config__ = None
|
|
|
|
|
|
def _get_config_path() -> str:
|
|
return "%s/%s" % (CONFIG_DIR, CONFIG_FILE)
|
|
|
|
|
|
def get_config():
|
|
global __config__
|
|
if __config__ is not None:
|
|
return __config__['root']
|
|
|
|
if not os.path.exists(CONFIG_DIR):
|
|
raise IOError("%s directory not found" % CONFIG_DIR)
|
|
|
|
if not os.path.isdir(CONFIG_DIR):
|
|
raise IOError("%s is not a directory" % CONFIG_DIR)
|
|
|
|
config_path = _get_config_path()
|
|
if not os.path.isfile(config_path):
|
|
raise IOError("%s file not found" % config_path)
|
|
|
|
__config__ = ConfigParser()
|
|
with open(config_path) as config_content:
|
|
__config__.read_string("[root]\n" + config_content.read())
|
|
|
|
return __config__['root']
|
|
|
|
|
|
def get_token() -> str:
|
|
return get_config()['token']
|
|
|
|
|
|
def get_admins() -> tuple:
|
|
config = get_config()
|
|
return tuple([int(s) for s in re.findall(r'\b\d+\b', config['admins'], flags=re.MULTILINE)])
|
|
|
|
|
|
def get_isv_bin() -> str:
|
|
return get_config()['isv_bin']
|
|
|
|
|
|
def use_sudo() -> bool:
|
|
config = get_config()
|
|
return 'use_sudo' in config and config['use_sudo'] == '1' |