summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)