[PATCH 2 of 2 RFC] extensions: make disabled()/disabledext() load prebuilt index if available
Yuya Nishihara
yuya at tcha.org
Sat Jun 4 07:19:20 CDT 2011
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1307186370 -32400
# Node ID 022ee080c73a67c22ba7b4584365651f334026cb
# Parent 994c340d811360674aa046e4a4c923db615779b4
extensions: make disabled()/disabledext() load prebuilt index if available
__index__ contains a dict of {name: desc} of all extensions.
diff --git a/mercurial/extensions.py b/mercurial/extensions.py
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -262,6 +262,14 @@ def _disabledhelp(path):
def disabled():
'''find disabled extensions from hgext. returns a dict of {name: desc}'''
+ try:
+ from hgext import __index__
+ return dict((name, gettext(desc))
+ for name, desc in __index__.docs.iteritems()
+ if name not in _order)
+ except ImportError:
+ pass
+
paths = _disabledpaths()
if not paths:
return None
@@ -276,6 +284,15 @@ def disabled():
def disabledext(name):
'''find a specific disabled extension from hgext. returns desc'''
+ try:
+ from hgext import __index__
+ if name in _order: # enabled
+ return
+ else:
+ return gettext(__index__.docs.get(name))
+ except ImportError:
+ pass
+
paths = _disabledpaths()
if name in paths:
return _disabledhelp(paths[name])
More information about the Mercurial-devel
mailing list