Writing a plugin¶
Introduction¶
Plugins are very similar to brz core functionality. They can import anything in breezy. A plugin may simply override standard functionality, but most plugins supply new commands.
Creating a new command¶
To create a command, make a new object that derives from
breezy.commands.Command
, and name it cmd_foo
, where foo is the name of
your command. If you create a command whose name contains an underscore,
it will appear in the UI with the underscore turned into a hyphen. For
example, cmd_baz_import will appear as baz-import. For examples of how
to write commands, please see builtins.py
.
Once you’ve created a command you must register the command with
breezy.commands.register_command(cmd_foo)
. You must register the
command when your file is imported, otherwise brz will not see it.
Installing a hook¶
See Using hooks.
Specifying a plugin version number¶
Simply define version_info
to be a tuple defining the current version
number of your plugin. eg.
version_info = (0, 9, 0)
version_info = (0, 9, 0, 'dev', 0)
Plugin searching rules¶
Breezy will scan ~/.config/breezy/plugins
and breezy/plugins
for
plugins by default. You can override this with BRZ_PLUGIN_PATH
(see User Reference for details).
Plugins may be either modules or packages. If your plugin is a single
file, you can structure it as a module. If it has multiple files, or if
you want to distribute it as a brz branch, you should structure it as a
package, i.e. a directory with an __init__.py
file.
More information¶
Please feel free to contribute your plugin to Breezy, if you think it would be useful to other people.
See the Breezy Developer Guide for details on Breezy’s development guidelines and policies.