1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-27 10:16:14 +01:00
github.com_openSUSE_osc/doc/plugins/index.rst
Daniel Mach 26a8fb1acf commandline: New class-based commands
This is based on a prototype we've worked on together
with Laurin Fäller <laurin.faeller@suse.com>.
2023-03-31 09:39:04 +02:00

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