#!/usr/bin/python import sys {{if sitedir}} sys.path.append('{{sitedir}}') {{endif}} # Use an absolute path, since the webroot dir is to get moved around projectroot='{{projectroot}}' sys.path.append(projectroot) #__requires__='{{project}}' import pkg_resources #pkg_resources.require('{{project}}') restart_file = __file__ email_to = '{{username}}@mit.edu' smtp_server = 'localhost' error_email_from = '{{username}}+bazki@mit.edu' error_subject_prefix = 'Low-level {{project}} Error: ' error_message = ("An internal server error has occurred. Email has been sent " "to %s; we'll fix this as soon as possible." % email_to) # Deploy it using FastCGI if __name__ == '__main__': from bazjunk.fcgi import RestartingServer from bazjunk.middleware.email import EmailErrors from bazjunk.middleware.cgitb import CgitbMiddleware try: # Load the WSGI application from the config file from paste.deploy import loadapp wsgi_app = loadapp('config:%s/development.ini'%projectroot) wsgi_app = EmailErrors(wsgi_app, to_addr=email_to, smtp_server=smtp_server, from_addr=error_email_from, subject_prefix=error_subject_prefix) wsgi_app = CgitbMiddleware(wsgi_app, lambda: error_message) RestartingServer(wsgi_app, restart_file).run() except Exception,e: from traceback import format_exception import sys, os tup = sys.exc_info() def errApp(environ, start_response): start_response('500 Flup Error', [('Content-Type', 'text/plain')], tup) for l in format_exception(*tup): yield l yield "To restart: touch %s\n" % os.path.abspath(restart_file) RestartingServer(errApp,restart_file).run()