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):