[Request] [+- ] D8934: hgweb: let staticfile() look up path from default location unless provided
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Aug 19 04:42:38 UTC 2020
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
This reduces duplication between the two callers.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8934
AFFECTED FILES
mercurial/hgweb/common.py
mercurial/hgweb/hgwebdir_mod.py
mercurial/hgweb/webcommands.py
CHANGE DETAILS
diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -1318,12 +1318,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()
diff --git a/mercurial/hgweb/hgwebdir_mod.py b/mercurial/hgweb/hgwebdir_mod.py
--- a/mercurial/hgweb/hgwebdir_mod.py
+++ b/mercurial/hgweb/hgwebdir_mod.py
@@ -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
diff --git a/mercurial/hgweb/common.py b/mercurial/hgweb/common.py
--- a/mercurial/hgweb/common.py
+++ b/mercurial/hgweb/common.py
@@ -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:
To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200819/430ec6b8/attachment-0001.html>
More information about the Mercurial-patches
mailing list