Merge branch 'master' of git://gitorious.org/mediagoblin/mediagoblin
[mediagoblin.git] / mediagoblin / app.py
index f052d4a2e52d46d98b24d90bbf243826636e1425..ce4b0becfd8baa826dddc594289016ffcf97a5bc 100644 (file)
@@ -21,7 +21,8 @@ import routes
 from webob import Request, exc
 
 from mediagoblin import routing, middleware
-from mediagoblin.tools import common, translate, template, response
+from mediagoblin.tools import common, translate, template
+from mediagoblin.tools.response import render_404
 from mediagoblin.tools import request as mg_request
 from mediagoblin.mg_globals import setup_globals
 from mediagoblin.init.celery import setup_celery_from_config
@@ -93,7 +94,7 @@ class MediaGoblinApp(object):
         # object.
         #######################################################
 
-        setup_globals(app = self)
+        setup_globals(app=self)
 
         # Workbench *currently* only used by celery, so this only
         # matters in always eager mode :)
@@ -103,7 +104,6 @@ class MediaGoblinApp(object):
         self.middleware = [common.import_component(m)(self)
                            for m in middleware.ENABLED_MIDDLEWARE]
 
-
     def __call__(self, environ, start_response):
         request = Request(environ)
 
@@ -161,7 +161,7 @@ class MediaGoblinApp(object):
 
             # Okay, no matches.  404 time!
             request.matchdict = {}  # in case our template expects it
-            return response.render_404(request)(environ, start_response)
+            return render_404(request)(environ, start_response)
 
         controller = common.import_component(route_match['controller'])
         request.start_response = start_response
@@ -177,6 +177,16 @@ class MediaGoblinApp(object):
 
 
 def paste_app_factory(global_config, **app_config):
-    mgoblin_app = MediaGoblinApp(app_config['config'])
+    configs = app_config['config'].split()
+    mediagoblin_config = None
+    for config in configs:
+        if os.path.exists(config) and os.access(config, os.R_OK):
+            mediagoblin_config = config
+            break
+
+    if not mediagoblin_config:
+        raise IOError("Usable mediagoblin config not found.")
+
+    mgoblin_app = MediaGoblinApp(mediagoblin_config)
 
     return mgoblin_app