index.cgi
author Tero Marttila <terom@fixme.fi>
Sun, 14 Sep 2014 12:56:10 +0300
changeset 55 eabf155f5327
parent 54 d8658498f65e
permissions -rwxr-xr-x
pages proejcts/degal: typofix
#!/usr/bin/python
# :set filetype=py encoding=utf8

"""
    CGI implementation
"""

# CGI handler for WSGI
import wsgiref.handlers

def cgi_error () :
    """
        Dumps out a raw traceback of the current exception to stdout, intended for use from except
    """

    import traceback, sys

    print 'Status: 500 Internal Server Error\r'
    print 'Content-type: text/plain\r'
    print '\r'

    traceback.print_exc(100, sys.stdout)

def cgi_main () :
    """
        Run in CGI mode
    """

    try :
        from qmsk.web import wsgi, template
        import lookup

        # create handler
        cgi_handler = wsgiref.handlers.CGIHandler()

        # create app handler
        handler = lookup.PageMapper("/var/www/qmsk.net/pages", templates=template.TemplateLoader("/var/www/qmsk.net/templates", cache_dir="/var/www/qmsk.net/cache/templates"))

        # create app
        app = wsgi.Application(handler)
        
        # run once
        cgi_handler.run(app)

    except :
        cgi_error()
    
if __name__ == '__main__' :
    cgi_main()