view bns_website/apache/bns.wsgi @ 71:c9a2c21b68bd

Making some tweaks to the design as per feedback from Ferenc.
author Brian Neal <bgneal@gmail.com>
date Wed, 23 Nov 2011 16:38:31 -0600
parents a5e8741452a3
children f00199f1524c
line wrap: on
line source
import os
import sys

OFFLINE = False

here = os.path.dirname(__file__)
website = os.path.dirname(here)
repo = os.path.dirname(website)
project = os.path.dirname(repo)
eggs = os.path.join(project, 'eggs')
django = os.path.join(project, 'django')

sys.path.extend([repo, website, django])

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