47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
import os
|
|
import sys
|
|
import types
|
|
|
|
from django.utils.termcolors import colorize
|
|
|
|
from .base import * # NOQA, default values
|
|
|
|
# Allow to override setting from any file, may be out of the PYTHONPATH,
|
|
# to make it easier for non python people.
|
|
path = os.environ.get('UMAP_SETTINGS')
|
|
if not path:
|
|
# Retrocompat
|
|
path = os.path.join('/etc', 'umap', 'umap.conf')
|
|
if not os.path.exists(path):
|
|
# Retrocompat
|
|
path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
|
'local.py')
|
|
if not os.path.exists(path):
|
|
msg = ('You must configure UMAP_SETTINGS or define '
|
|
'/etc/umap/umap.conf')
|
|
print(colorize(msg, fg='red'))
|
|
sys.exit(1)
|
|
|
|
d = types.ModuleType('config')
|
|
d.__file__ = path
|
|
try:
|
|
with open(path) as config_file:
|
|
exec(compile(config_file.read(), path, 'exec'), d.__dict__)
|
|
except IOError as e:
|
|
msg = 'Unable to import {} from UMAP_SETTINGS'.format(path)
|
|
print(colorize(msg, fg='red'))
|
|
sys.exit(e)
|
|
else:
|
|
print('Loaded local config from', path)
|
|
for key in dir(d):
|
|
if key.isupper():
|
|
value = getattr(d, key)
|
|
if key.startswith('LEAFLET_STORAGE'):
|
|
# Retrocompat pre 1.0, remove me in 1.1.
|
|
globals()['UMAP' + key[15:]] = value
|
|
elif key == 'UMAP_CUSTOM_TEMPLATES':
|
|
globals()['TEMPLATES'][0]['DIRS'].insert(0, value)
|
|
elif key == 'UMAP_CUSTOM_STATICS':
|
|
globals()['STATICFILES_DIRS'].insert(0, value)
|
|
else:
|
|
globals()[key] = value
|