import configparser
from pathlib import Path

_cfg: configparser.ConfigParser | None = None


def init_cfg(config_file: Path = None):
    global _cfg

    if _cfg is not None:
        raise ValueError('already initialized')

    if config_file is None:
        import socket
        hostname = socket.gethostname()
        config_file = Path(f'/etc/de-p1st-monitor/{hostname}.ini')

    if not config_file.exists():
        raise Exception(f'Configuration file does not exist! {config_file}')

    _cfg = configparser.ConfigParser()
    _cfg.read(config_file)


def get_cfg() -> configparser.ConfigParser:
    global _cfg

    if _cfg is None:
        raise ValueError('uninitialized')
    return _cfg
