Mercurial > hg
changeset 36868:8ddb5c354906
hgweb: expose repo name on parsedrequest
I'm not a fan of doing this because I want to find a better solution to
the REPO_NAME hack. But this change gets us a few steps closer to
eliminating use of wsgirequest. We can worry about fixing REPO_NAME
once wsgirequest is gone.
Differential Revision: https://phab.mercurial-scm.org/D2784
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 10 Mar 2018 14:06:58 -0800 |
parents | a755fd3b7146 |
children | 7ad6a275316f |
files | mercurial/hgweb/hgweb_mod.py mercurial/hgweb/request.py |
diffstat | 2 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py Sat Mar 10 14:00:40 2018 -0800 +++ b/mercurial/hgweb/hgweb_mod.py Sat Mar 10 14:06:58 2018 -0800 @@ -141,7 +141,7 @@ if typ in allowed or self.configbool('web', 'allow%s' % typ): yield {'type': typ, 'extension': spec[2], 'node': nodeid} - def templater(self, wsgireq, req): + def templater(self, req): # determine scheme, port and server name # this is needed to create absolute urls logourl = self.config('web', 'logourl') @@ -159,7 +159,7 @@ # figure out which style to use vars = {} - styles, (style, mapfile) = getstyle(wsgireq.req, self.config, + styles, (style, mapfile) = getstyle(req, self.config, self.templatepath) if style == styles[0]: vars['style'] = style @@ -168,8 +168,9 @@ if not self.reponame: self.reponame = (self.config('web', 'name', '') - or wsgireq.env.get('REPO_NAME') - or req.apppath or self.repo.root) + or req.reponame + or req.apppath + or self.repo.root) def websubfilter(text): return templatefilters.websub(text, self.websubtable) @@ -372,7 +373,7 @@ # process the web interface request try: - tmpl = rctx.templater(wsgireq, req) + tmpl = rctx.templater(req) ctype = tmpl('mimetype', encoding=encoding.encoding) ctype = templater.stringify(ctype)
--- a/mercurial/hgweb/request.py Sat Mar 10 14:00:40 2018 -0800 +++ b/mercurial/hgweb/request.py Sat Mar 10 14:06:58 2018 -0800 @@ -144,6 +144,8 @@ # Whether there is a path component to this request. This can be true # when ``dispatchpath`` is empty due to REPO_NAME muckery. havepathinfo = attr.ib() + # The name of the repository being accessed. + reponame = attr.ib() # Raw query string (part after "?" in URL). querystring = attr.ib() # multidict of query string parameters. @@ -282,6 +284,7 @@ apppath=apppath, dispatchparts=dispatchparts, dispatchpath=dispatchpath, havepathinfo='PATH_INFO' in env, + reponame=env.get('REPO_NAME'), querystring=querystring, qsparams=qsparams, headers=headers,