~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/plugin.py

  • Committer: Martin Pool
  • Date: 2005-08-17 02:06:19 UTC
  • Revision ID: mbp@sourcefrog.net-20050817020618-c7ae430253df8532
- rearrangement of modules, contributed by Gustavo Niemeyer


1) Moved plugins directory to bzrlib/, so that there's a standard
  plugin directory which is not only installed with bzr itself
  but is also available when using bzr from the development tree.
  BZR_PLUGIN_PATH and DEFAULT_PLUGIN_PATH are then added to the
  standard plugins directory.

2) Moved the needed third-party tools to an internal directory under
  bzrlib/util.  This makes sure that needed tools are available in
  the bzr installation, including the correct/expected version, and
  eases the process of packaging and redistribution of bzr
  ('setup.py bdist*' creates a working distribution).

3) Fixed setup.py including the needed package entries.

I hope you find them useful.

Show diffs side-by-side

added added

removed removed

Lines of Context:
59
59
    
60
60
    from bzrlib.trace import log_error, mutter, log_exception
61
61
    from bzrlib.errors import BzrError
 
62
    from bzrlib import plugins
62
63
 
63
 
    bzrpath = os.environ.get('BZR_PLUGIN_PATH', DEFAULT_PLUGIN_PATH)
 
64
    dirs = os.environ.get('BZR_PLUGIN_PATH', DEFAULT_PLUGIN_PATH).split(":")
 
65
    dirs.insert(0, os.path.dirname(plugins.__file__))
64
66
 
65
67
    # The problem with imp.get_suffixes() is that it doesn't include
66
68
    # .pyo which is technically valid
70
72
    suffixes = imp.get_suffixes()
71
73
    suffixes.append(('.pyo', 'rb', imp.PY_COMPILED))
72
74
    package_entries = ['__init__.py', '__init__.pyc', '__init__.pyo']
73
 
    for d in bzrpath.split(os.pathsep):
 
75
    for d in dirs:
74
76
        # going through them one by one allows different plugins with the same
75
77
        # filename in different directories in the path
76
78
        mutter('looking for plugins in %s' % d)