Mercurial > hg
changeset 45378:dc9fe90bdbd5
hgweb: let staticfile() look up path from default location unless provided
This reduces duplication between the two callers.
Differential Revision: https://phab.mercurial-scm.org/D8934
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Sat, 22 Aug 2020 16:03:44 -0700 |
parents | da3b7c80aa34 |
children | ec2fc4d038c2 |
files | mercurial/hgweb/common.py mercurial/hgweb/hgwebdir_mod.py mercurial/hgweb/webcommands.py |
diffstat | 3 files changed, 9 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/common.py Mon Aug 03 22:40:05 2020 -0700 +++ b/mercurial/hgweb/common.py Sat Aug 22 16:03:44 2020 -0700 @@ -21,6 +21,7 @@ from .. import ( encoding, pycompat, + templater, util, ) @@ -178,7 +179,7 @@ return True -def staticfile(directory, fname, res): +def staticfile(templatepath, directory, fname, res): """return a file inside directory with guessed Content-Type header fname always uses '/' as directory separator and isn't allowed to @@ -190,6 +191,11 @@ if not ispathsafe(fname): return + if not directory: + tp = templatepath or templater.templatedir() + if tp is not None: + directory = os.path.join(tp, b'static') + fpath = os.path.join(*fname.split(b'/')) path = os.path.join(directory, fpath) try:
--- a/mercurial/hgweb/hgwebdir_mod.py Mon Aug 03 22:40:05 2020 -0700 +++ b/mercurial/hgweb/hgwebdir_mod.py Sat Aug 22 16:03:44 2020 -0700 @@ -413,12 +413,7 @@ else: fname = req.qsparams[b'static'] static = self.ui.config(b"web", b"static", untrusted=False) - if not static: - tp = self.templatepath or templater.templatedir() - if tp is not None: - static = os.path.join(tp, b'static') - - staticfile(static, fname, res) + staticfile(self.templatepath, static, fname, res) return res.sendresponse() # top-level index
--- a/mercurial/hgweb/webcommands.py Mon Aug 03 22:40:05 2020 -0700 +++ b/mercurial/hgweb/webcommands.py Sat Aug 22 16:03:44 2020 -0700 @@ -36,7 +36,6 @@ revsetlang, scmutil, smartset, - templater, templateutil, ) @@ -1318,12 +1317,7 @@ # a repo owner may set web.static in .hg/hgrc to get any file # readable by the user running the CGI script static = web.config(b"web", b"static", untrusted=False) - if not static: - tp = web.templatepath or templater.templatedir() - if tp is not None: - static = os.path.join(tp, b'static') - - staticfile(static, fname, web.res) + staticfile(web.templatepath, static, fname, web.res) return web.res.sendresponse()