mercurial/extensions.py
changeset 4567 622d8ed78b47
parent 4559 9338be783398
child 4578 b1716a8b32d3
equal deleted inserted replaced
4561:8044be585b91 4567:622d8ed78b47
     3 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
     3 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
     4 #
     4 #
     5 # This software may be used and distributed according to the terms
     5 # This software may be used and distributed according to the terms
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 import imp, commands, hg, util, sys
     8 import imp, os
       
     9 import commands, hg, util, sys
     9 from i18n import _
    10 from i18n import _
    10 
    11 
    11 _extensions = {}
    12 _extensions = {}
    12 
    13 
    13 def find(name):
    14 def find(name):
    26     if path:
    27     if path:
    27         # the module will be loaded in sys.modules
    28         # the module will be loaded in sys.modules
    28         # choose an unique name so that it doesn't
    29         # choose an unique name so that it doesn't
    29         # conflicts with other modules
    30         # conflicts with other modules
    30         module_name = "hgext_%s" % name.replace('.', '_')
    31         module_name = "hgext_%s" % name.replace('.', '_')
    31         mod = imp.load_source(module_name, path)
    32         if os.path.isdir(path):
       
    33             # module/__init__.py style
       
    34             fd, fpath, desc = imp.find_module('', [path])
       
    35             mod = imp.load_module(module_name, fd, fpath, desc)
       
    36         else:
       
    37             mod = imp.load_source(module_name, path)
    32     else:
    38     else:
    33         def importh(name):
    39         def importh(name):
    34             mod = __import__(name)
    40             mod = __import__(name)
    35             components = name.split('.')
    41             components = name.split('.')
    36             for comp in components[1:]:
    42             for comp in components[1:]: