mirror of
https://github.com/openSUSE/osc.git
synced 2024-12-27 10:16:14 +01:00
Daniel Mach
26a8fb1acf
This is based on a prototype we've worked on together with Laurin Fäller <laurin.faeller@suse.com>.
55 lines
1.1 KiB
ReStructuredText
55 lines
1.1 KiB
ReStructuredText
Extending osc with plugins
|
|
==========================
|
|
|
|
|
|
.. note::
|
|
New in osc 1.1.0
|
|
|
|
|
|
This is a simple tutorial.
|
|
More details can be found in the :py:class:`osc.commandline.OscCommand` reference.
|
|
|
|
|
|
Steps
|
|
-----
|
|
1. First, we choose a location where to put the plugin
|
|
|
|
.. include:: plugin_locations.rst
|
|
|
|
2. Then we pick a file name
|
|
|
|
- The file should contain a single command and its name should correspond with the command name.
|
|
- The file name should be prefixed with parent command(s) (only if applicable).
|
|
- Example: Adding ``list`` subcommand to ``osc request`` -> ``request_list.py``.
|
|
|
|
3. And then we write a class that inherits from :py:class:`osc.commandline.OscCommand` and implements our command.
|
|
|
|
- The class name should also correspond with the command name incl. the parent prefix.
|
|
- Examples follow...
|
|
|
|
|
|
|
|
|
|
A simple command
|
|
----------------
|
|
|
|
``simple.py``
|
|
|
|
.. literalinclude:: simple.py
|
|
|
|
|
|
Command with subcommands
|
|
------------------------
|
|
|
|
``request.py``
|
|
|
|
.. literalinclude:: request.py
|
|
|
|
``request_list.py``
|
|
|
|
.. literalinclude:: request_list.py
|
|
|
|
``request_accept.py``
|
|
|
|
.. literalinclude:: request_accept.py
|