forked from ScoDoc/ScoDoc
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
# -*- mode: python -*-
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""Chargement de la configuration locale
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
from app import log
|
|
from app.scodoc import sco_config
|
|
|
|
# scodoc_local defines a CONFIG object
|
|
# here we check if there is a local config file
|
|
|
|
|
|
def load_local_configuration(scodoc_cfg_dir):
|
|
"""Load local configuration file (if exists)
|
|
and merge it with CONFIG.
|
|
"""
|
|
local_config_filename = os.path.join(scodoc_cfg_dir, "scodoc_local.py")
|
|
local_config = None
|
|
if os.path.exists(local_config_filename):
|
|
if not scodoc_cfg_dir in sys.path:
|
|
sys.path.insert(0, scodoc_cfg_dir)
|
|
try:
|
|
from scodoc_local import CONFIG as local_config
|
|
|
|
log("imported %s" % local_config_filename)
|
|
except ImportError:
|
|
log("Error: can't import %s" % local_config_filename)
|
|
del sys.path[0]
|
|
if local_config is None:
|
|
return
|
|
# Now merges local config in our CONFIG
|
|
for x in [x for x in local_config if x[0] != "_"]:
|
|
v = local_config.get(x)
|
|
if not x in sco_config.CONFIG:
|
|
log(f"Warning: local config setting unused parameter {x} (skipped)")
|
|
else:
|
|
if v != sco_config.CONFIG[x]:
|
|
log(f"Setting parameter {x} from {local_config_filename}")
|
|
sco_config.CONFIG[x] = v
|