summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 03:40:33 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 04:44:07 +0100
commite1f0fca1991fcfd50836e0c8f8f9c0928854e8d1 (patch)
tree7a3991d6889da9cd3ec06296a73c04da499d93cf
parentf530071cb4a90d98af2ff5eabf4584c060e9795a (diff)
downloadweb-e1f0fca1991fcfd50836e0c8f8f9c0928854e8d1.tar.gz
web-e1f0fca1991fcfd50836e0c8f8f9c0928854e8d1.tar.bz2
web-e1f0fca1991fcfd50836e0c8f8f9c0928854e8d1.zip
Fix relative file paths in the config
Relative file paths in the config should be relative to the directory containing the config file itself.
-rw-r--r--accounts/__init__.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/accounts/__init__.py b/accounts/__init__.py
index fabf0ec..08d52ba 100644
--- a/accounts/__init__.py
+++ b/accounts/__init__.py
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
+import os
from flask import Flask, g, session
from models import Service
@@ -9,10 +10,26 @@ from utils.login import create_login_manager
from views import default, login, admin
+def absolute_paths(app, config):
+ def handle_option(dirname, name):
+ if app.config.get(name):
+ app.config[name] = os.path.join(dirname, app.config[name])
+
+ dirname = os.path.dirname(config)
+ handle_option(dirname, 'USERNAME_BLACKLIST_FILE')
+
+
+def load_config(app, configfile):
+ if configfile is not None:
+ filename = os.path.join(app.root_path, configfile)
+ app.config.from_pyfile(filename)
+ absolute_paths(app, filename)
+
+
def create_app():
app = Flask(__name__)
app.config.from_object('accounts.default_settings')
- app.config.from_envvar('SPLINE_ACCOUNT_WEB_SETTINGS', silent=True)
+ load_config(app, os.environ.get('SPLINE_ACCOUNT_WEB_SETTINGS'))
app.register_blueprint(default.bp)
app.register_blueprint(login.bp)