31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import importlib
|
|
import socket
|
|
import traceback
|
|
from libqtile.log_utils import logger
|
|
|
|
def load_config_class():
|
|
# Try to import host-specific configuration first
|
|
hostname = socket.gethostname().lower()
|
|
if hostname:
|
|
try:
|
|
host_module = importlib.import_module(f"kuro.config.{hostname}")
|
|
return getattr(host_module, "Config")
|
|
except ImportError:
|
|
pass
|
|
logger.warning(f"No host-specific configuration available for {hostname}. Loading general config...")
|
|
|
|
# If no config yet, load general Kuro Config object
|
|
try:
|
|
conf_module = importlib.import_module("kuro.config")
|
|
return getattr(conf_module, "Config")
|
|
except ImportError as e:
|
|
logger.error(traceback.format_exc())
|
|
logger.error("Could not load Kuro Config. Trying to load BaseConfig. Error: {}".format(e))
|
|
|
|
# If no config yet, load fallback BaseConfig
|
|
try:
|
|
base_module = importlib.import_module("kuro.base")
|
|
return getattr(base_module, "BaseConfig")
|
|
except ImportError as e:
|
|
logger.error(traceback.format_exc())
|
|
return None
|