diff options
Diffstat (limited to 'mediagoblin/util.py')
-rw-r--r-- | mediagoblin/util.py | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 2865cf11..fdb2c3f5 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -18,17 +18,20 @@ from email.MIMEText import MIMEText import gettext import pkg_resources import smtplib +import os import sys import re +import urllib +from math import ceil +import copy + import jinja2 -from mediagoblin.db.util import ObjectId import translitcodec +from paste.deploy.loadwsgi import NicerConfigParser from mediagoblin import globals as mgoblin_globals +from mediagoblin.db.util import ObjectId -import urllib -from math import ceil -import copy TESTS_ENABLED = False def _activate_testing(): @@ -278,6 +281,28 @@ def get_locale_from_request(request): return locale_to_lower_upper(target_lang) +def read_config_file(conf_file): + """ + Read a paste deploy style config file and process it. + """ + if not os.path.exists(conf_file): + raise IOError( + "MEDIAGOBLIN_CONFIG not set or file does not exist") + + parser = NicerConfigParser(conf_file) + parser.read(conf_file) + parser._defaults.setdefault( + 'here', os.path.dirname(os.path.abspath(conf_file))) + parser._defaults.setdefault( + '__file__', os.path.abspath(conf_file)) + + mgoblin_conf = dict( + [(section_name, dict(parser.items(section_name))) + for section_name in parser.sections()]) + + return mgoblin_conf + + def setup_gettext(locale): """ Setup the gettext instance based on this locale |