~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/plugin.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
79
79
    global _loaded
80
80
    _loaded = True
81
81
 
 
82
def _strip_trailing_sep(path):
 
83
    return path.rstrip("\\/")
82
84
 
83
85
def set_plugins_path():
84
86
    """Set the path for plugins to be loaded from."""
85
87
    path = os.environ.get('BZR_PLUGIN_PATH',
86
88
                          get_default_plugin_path()).split(os.pathsep)
 
89
    # Get rid of trailing slashes, since Python can't handle them when
 
90
    # it tries to import modules.
 
91
    path = map(_strip_trailing_sep, path)
87
92
    # search the plugin path before the bzrlib installed dir
88
93
    path.append(os.path.dirname(plugins.__file__))
89
94
    plugins.__path__ = path
123
128
 
124
129
    The python module path for bzrlib.plugins will be modified to be 'dirs'.
125
130
    """
126
 
    plugins.__path__ = dirs
 
131
    # We need to strip the trailing separators here as well as in the
 
132
    # set_plugins_path function because calling code can pass anything in to
 
133
    # this function, and since it sets plugins.__path__, it should set it to
 
134
    # something that will be valid for Python to use (in case people try to
 
135
    # run "import bzrlib.plugins.PLUGINNAME" after calling this function).
 
136
    plugins.__path__ = map(_strip_trailing_sep, dirs)
127
137
    for d in dirs:
128
138
        if not d:
129
139
            continue