diff mercurial/help.py @ 43877:1390bb81163e

help: get helptext/ data from `resources` module if available For PyOxidizer, we need to read configs using the `resources` module. This patch makes it so we use that module if available (i.e. Python >= 3.7). It does that by adding a new `open_resource()` function to our `resourceutil` module. Tested by running `$PYTHON ./hg help pager` for each $PYTHON in {python2, python3.6, python3.7}. Differential Revision: https://phab.mercurial-scm.org/D7622
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 12 Dec 2019 12:57:13 -0800
parents 5be909dbe385
children 52f0140c2604
line wrap: on
line diff
--- a/mercurial/help.py	Thu Dec 12 10:26:09 2019 -0800
+++ b/mercurial/help.py	Thu Dec 12 12:57:13 2019 -0800
@@ -8,7 +8,6 @@
 from __future__ import absolute_import
 
 import itertools
-import os
 import re
 import textwrap
 
@@ -314,11 +313,11 @@
     """Return a delayed loader for help/topic.txt."""
 
     def loader(ui):
-        docdir = os.path.join(resourceutil.datapath, b'helptext')
+        package = b'helptext'
         if subdir:
-            docdir = os.path.join(docdir, subdir)
-        path = os.path.join(docdir, topic + b".txt")
-        doc = gettext(util.readfile(path))
+            package = b'helptext' + b'.' + subdir
+        with resourceutil.open_resource(package, topic + b'.txt') as fp:
+            doc = gettext(fp.read())
         for rewriter in helphooks.get(topic, []):
             doc = rewriter(ui, topic, doc)
         return doc