Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/request.py @ 6774:0dbb56e90a71
hgweb: move shortcut expansion to request instantiation
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Thu, 26 Jun 2008 13:45:39 +0200 |
parents | e75aab656f46 |
children | a42d27bc809d |
comparison
equal
deleted
inserted
replaced
6735:8b09b0864781 | 6774:0dbb56e90a71 |
---|---|
6 # This software may be used and distributed according to the terms | 6 # This software may be used and distributed according to the terms |
7 # of the GNU General Public License, incorporated herein by reference. | 7 # of the GNU General Public License, incorporated herein by reference. |
8 | 8 |
9 import socket, cgi, errno | 9 import socket, cgi, errno |
10 from common import ErrorResponse, statusmessage | 10 from common import ErrorResponse, statusmessage |
11 | |
12 shortcuts = { | |
13 'cl': [('cmd', ['changelog']), ('rev', None)], | |
14 'sl': [('cmd', ['shortlog']), ('rev', None)], | |
15 'cs': [('cmd', ['changeset']), ('node', None)], | |
16 'f': [('cmd', ['file']), ('filenode', None)], | |
17 'fl': [('cmd', ['filelog']), ('filenode', None)], | |
18 'fd': [('cmd', ['filediff']), ('node', None)], | |
19 'fa': [('cmd', ['annotate']), ('filenode', None)], | |
20 'mf': [('cmd', ['manifest']), ('manifest', None)], | |
21 'ca': [('cmd', ['archive']), ('node', None)], | |
22 'tags': [('cmd', ['tags'])], | |
23 'tip': [('cmd', ['changeset']), ('node', ['tip'])], | |
24 'static': [('cmd', ['static']), ('file', None)] | |
25 } | |
26 | |
27 def expand(form): | |
28 for k in shortcuts.iterkeys(): | |
29 if k in form: | |
30 for name, value in shortcuts[k]: | |
31 if value is None: | |
32 value = form[k] | |
33 form[name] = value | |
34 del form[k] | |
35 return form | |
11 | 36 |
12 class wsgirequest(object): | 37 class wsgirequest(object): |
13 def __init__(self, wsgienv, start_response): | 38 def __init__(self, wsgienv, start_response): |
14 version = wsgienv['wsgi.version'] | 39 version = wsgienv['wsgi.version'] |
15 if (version < (1, 0)) or (version >= (2, 0)): | 40 if (version < (1, 0)) or (version >= (2, 0)): |
19 self.err = wsgienv['wsgi.errors'] | 44 self.err = wsgienv['wsgi.errors'] |
20 self.threaded = wsgienv['wsgi.multithread'] | 45 self.threaded = wsgienv['wsgi.multithread'] |
21 self.multiprocess = wsgienv['wsgi.multiprocess'] | 46 self.multiprocess = wsgienv['wsgi.multiprocess'] |
22 self.run_once = wsgienv['wsgi.run_once'] | 47 self.run_once = wsgienv['wsgi.run_once'] |
23 self.env = wsgienv | 48 self.env = wsgienv |
24 self.form = cgi.parse(self.inp, self.env, keep_blank_values=1) | 49 self.form = expand(cgi.parse(self.inp, self.env, keep_blank_values=1)) |
25 self._start_response = start_response | 50 self._start_response = start_response |
26 self.server_write = None | 51 self.server_write = None |
27 self.headers = [] | 52 self.headers = [] |
28 | 53 |
29 def __iter__(self): | 54 def __iter__(self): |