author | Tero Marttila <terom@fixme.fi> |
Sun, 13 Sep 2009 00:49:55 +0300 | |
changeset 139 | 9c7769850195 |
parent 134 | fbccc1648d79 |
permissions | -rwxr-xr-x |
6 | 1 |
#!/usr/bin/python2.5 |
2 |
||
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
3 |
""" |
125
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
4 |
CGI mode using qmsk.web.cgi |
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
5 |
""" |
6 | 6 |
|
133 | 7 |
def error () : |
8 |
""" |
|
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
9 |
Dumps out a raw traceback of the current exception to stdout, call from except. |
133 | 10 |
|
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
11 |
Used for low-level ImportError's |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
12 |
""" |
133 | 13 |
|
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
14 |
# if this import fails, we're doomed |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
15 |
import sys, error |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
16 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
17 |
# format info |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
18 |
status, content_type, body = error.build_error() |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
19 |
|
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
20 |
# HTTP headers+body |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
21 |
sys.stdout.write('Status: %s\r\n' % status) |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
22 |
sys.stdout.write('Content-type: %s\r\n' % content_type) |
133 | 23 |
sys.stdout.write('\r\n') |
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
24 |
sys.stdout.write(body) |
133 | 25 |
|
125
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
26 |
def main () : |
16
4a40718c7b4b
better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
27 |
""" |
125
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
28 |
Build our wsgi.Application and run |
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
29 |
""" |
11 | 30 |
|
31 |
try : |
|
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
32 |
from qmsk.web import cgi_main |
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
33 |
import wsgi |
16
4a40718c7b4b
better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
34 |
|
31
107062ebb6f9
bloat code with even more layers of indirection, split off the filesystem-based stuff into a separate lib.filesystem package (next, move it to sites/www.qmsk.net)
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
35 |
# create app |
134
fbccc1648d79
improved error handling for CGI/FastCGI
Tero Marttila <terom@fixme.fi>
parents:
133
diff
changeset
|
36 |
app = wsgi.Application() |
16
4a40718c7b4b
better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
37 |
|
4a40718c7b4b
better error handling of import errors in CGI, and split PageTree out from page.py into page_tree.py and tree_parse.py
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
38 |
# run once |
125
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
39 |
cgi_main.run(app) |
11 | 40 |
|
41 |
except : |
|
125
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
42 |
# display error on stdout |
133 | 43 |
error() |
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
44 |
|
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
45 |
if __name__ == '__main__' : |
125
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
46 |
main() |
45e56cbf9086
modify index.cgi to use qmsk.web.cgi_main
Tero Marttila <terom@fixme.fi>
parents:
46
diff
changeset
|
47 |