author | Tero Marttila <terom@fixme.fi> |
Sun, 08 Feb 2009 04:59:22 +0200 | |
changeset 49 | aaa62c8e5bd5 |
parent 46 | 185504387370 |
child 125 | 45e56cbf9086 |
permissions | -rwxr-xr-x |
6 | 1 |
#!/usr/bin/python2.5 |
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
2 |
# :set filetype=py encoding=utf8 |
6 | 3 |
|
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
4 |
""" |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
5 |
CGI implementation |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
6 |
""" |
6 | 7 |
|
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
8 |
# CGI handler for WSGI |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
9 |
import wsgiref.handlers |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
10 |
|
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
|
11 |
def cgi_error () : |
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
|
12 |
""" |
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
|
13 |
Dumps out a raw traceback of the current exception to stdout, intended for use from except |
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
|
14 |
""" |
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
|
15 |
|
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
|
16 |
import traceback, sys |
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
|
17 |
|
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
|
18 |
print 'Status: 500 Internal Server Error\r' |
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
|
19 |
print 'Content-type: text/plain\r' |
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
|
20 |
print '\r' |
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
|
21 |
|
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
|
22 |
traceback.print_exc(100, sys.stdout) |
7
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
23 |
|
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
24 |
def cgi_main () : |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
25 |
""" |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
26 |
Run in CGI mode |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
27 |
""" |
11 | 28 |
|
29 |
try : |
|
46
185504387370
reduce to irclogs.qmsk.net site
Tero Marttila <terom@fixme.fi>
parents:
31
diff
changeset
|
30 |
from qmsk.web import wsgi |
185504387370
reduce to irclogs.qmsk.net site
Tero Marttila <terom@fixme.fi>
parents:
31
diff
changeset
|
31 |
import urls |
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
|
32 |
|
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
|
33 |
# create handler |
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 |
cgi_handler = wsgiref.handlers.CGIHandler() |
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 |
|
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
|
36 |
# create app |
46
185504387370
reduce to irclogs.qmsk.net site
Tero Marttila <terom@fixme.fi>
parents:
31
diff
changeset
|
37 |
app = wsgi.Application(urls.mapper) |
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
|
38 |
|
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
|
39 |
# run once |
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
|
40 |
cgi_handler.run(app) |
11 | 41 |
|
42 |
except : |
|
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
|
43 |
cgi_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__' : |
d6a8258bd90e
YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
46 |
cgi_main() |