[Request] [+ ] D8901: hgweb: enable reading styles from resources in frozen binaries
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Aug 5 22:05:55 UTC 2020
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
All we need to do to read styles from resources is to pass the
file-like object we get from `open_template()` on to `frommapfile()`.
This takes the number of failing tests with PyOxidizer from 62 to 54.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8901
AFFECTED FILES
mercurial/hgweb/hgweb_mod.py
mercurial/hgweb/hgwebdir_mod.py
CHANGE DETAILS
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
@@ -542,7 +542,7 @@
return self.ui.config(*args, **kwargs)
vars = {}
- styles, (style, mapfile) = hgweb_mod.getstyle(
+ styles, (style, mapfile, fp) = hgweb_mod.getstyle(
req, config, self.templatepath
)
if style == styles[0]:
@@ -577,5 +577,6 @@
else:
yield config(b'web', b'motd')
- tmpl = templater.templater.frommapfile(mapfile, defaults=defaults)
- return tmpl
+ return templater.templater.frommapfile(
+ mapfile, fp=fp, defaults=defaults
+ )
diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py
--- a/mercurial/hgweb/hgweb_mod.py
+++ b/mercurial/hgweb/hgweb_mod.py
@@ -80,7 +80,7 @@
for location in locations:
mapfile, fp = templater.open_template(location, path)
if mapfile:
- return style, mapfile
+ return style, mapfile, fp
raise RuntimeError(b"No hgweb templates found in %r" % path)
@@ -180,7 +180,9 @@
# figure out which style to use
vars = {}
- styles, (style, mapfile) = getstyle(req, self.config, self.templatepath)
+ styles, (style, mapfile, fp) = getstyle(
+ req, self.config, self.templatepath
+ )
if style == styles[0]:
vars[b'style'] = style
@@ -223,10 +225,9 @@
yield self.config(b'web', b'motd')
tres = formatter.templateresources(self.repo.ui, self.repo)
- tmpl = templater.templater.frommapfile(
- mapfile, filters=filters, defaults=defaults, resources=tres
+ return templater.templater.frommapfile(
+ mapfile, fp=fp, filters=filters, defaults=defaults, resources=tres
)
- return tmpl
def sendtemplate(self, name, **kwargs):
"""Helper function to send a response generated from a template."""
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/20200805/cde85857/attachment.html>
More information about the Mercurial-patches
mailing list