Mercurial > public > bravenewsurf
changeset 24:0bac5dfbcc7c
Merged Brian's changes with mine.
author | Bob Mourlam <bob.mourlam@gmail.com> |
---|---|
date | Mon, 31 Oct 2011 22:10:06 -0500 |
parents | 1357c69e887d (current diff) 7fce0720f89b (diff) |
children | 72bfeac8f4f3 353ca3874f43 |
files | |
diffstat | 1 files changed, 50 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bns_website/apache/bns.wsgi Mon Oct 31 22:10:06 2011 -0500 @@ -0,0 +1,50 @@ +import os +import sys + +OFFLINE = False + +here = os.path.dirname(__file__) +website = os.path.dirname(here) +project = os.path.dirname(website) +third_party_apps = os.path.join(project, '3rdparty') +eggs = os.path.join(project, 'eggs') + +sys.path.extend([project, website, third_party_apps]) + +os.environ['PYTHON_EGG_CACHE'] = eggs + + +def offline_handler(environ, start_response): + """ + This handler is run when the site is in maintenance mode. + It either displays a brief outage message, or, if a template + file exists, it reads the file and returns its contents. + + """ + wsgi_dir = os.path.dirname(__file__) + sys.path.append(wsgi_dir) + + offline_file = os.path.abspath( + os.path.join(wsgi_dir, '..', 'templates', 'offline.html')) + if os.path.exists(offline_file): + response_headers = [('Content-type','text/html')] + response = open(offline_file).read() + else: + response_headers = [('Content-type','text/plain')] + response = ('Brave New Surf website maintenance in progress; ' + 'please check back soon.') + + if environ['REQUEST_METHOD'] == 'GET': + status = '503 Service Unavailable' + else: + status = '405 Method Not Allowed' + start_response(status, response_headers) + return [response] + + +if not OFFLINE: + os.environ['DJANGO_SETTINGS_MODULE'] = 'bns_website.settings.production' + import django.core.handlers.wsgi + application = django.core.handlers.wsgi.WSGIHandler() +else: + application = offline_handler