diff mercurial/extensions.py @ 4569:622d8ed78b47

extensions: load modules in module/__init__.py form. For example, convert=/path/to/convert now works.
author Brendan Cully <brendan@kublai.com>
date Wed, 13 Jun 2007 13:46:40 -0700
parents 9338be783398
children b1716a8b32d3
line wrap: on
line diff
--- a/mercurial/extensions.py	Tue Jun 12 13:21:42 2007 -0700
+++ b/mercurial/extensions.py	Wed Jun 13 13:46:40 2007 -0700
@@ -5,7 +5,8 @@
 # This software may be used and distributed according to the terms
 # of the GNU General Public License, incorporated herein by reference.
 
-import imp, commands, hg, util, sys
+import imp, os
+import commands, hg, util, sys
 from i18n import _
 
 _extensions = {}
@@ -28,7 +29,12 @@
         # choose an unique name so that it doesn't
         # conflicts with other modules
         module_name = "hgext_%s" % name.replace('.', '_')
-        mod = imp.load_source(module_name, path)
+        if os.path.isdir(path):
+            # module/__init__.py style
+            fd, fpath, desc = imp.find_module('', [path])
+            mod = imp.load_module(module_name, fd, fpath, desc)
+        else:
+            mod = imp.load_source(module_name, path)
     else:
         def importh(name):
             mod = __import__(name)