grimoire/grimoiressg/config.py

44 lines
1.1 KiB
Python
Raw Normal View History

2025-01-10 17:53:57 +00:00
import logging
import yaml
from yaml import Loader
from grimoiressg.modules import available_modules, load_external_module
2025-01-10 17:53:57 +00:00
from grimoiressg.utils import logger
def default_config():
return {
"enabled_modules": [
"tags",
"markdown",
"templating"
]
}
def read_config(context):
config_file = context.get("config_file", None)
if not config_file:
2025-01-10 17:53:57 +00:00
logger.info("No config file given; using default config")
config = default_config()
else:
2025-01-10 17:53:57 +00:00
logger.info("Loading config file...")
with open(config_file, "r") as file:
config = yaml.load(file, Loader) or {}
for module in config.get("load_modules", []):
2025-01-10 17:53:57 +00:00
logger.debug(" Loading external module %s", module)
load_external_module(module)
2025-01-10 17:53:57 +00:00
logger.debug("Enabled modules:")
for module in config.get("enabled_modules", []):
2025-01-10 17:53:57 +00:00
logger.debug(" - %s", module)
if module not in available_modules:
2025-01-10 17:53:57 +00:00
logger.critical("Module does not exist: %s", module)
logging.shutdown()
exit(1)
return config