You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

10 years ago
"""Example Plugin for EasyEngine."""
from cement.core.controller import CementBaseController, expose
from cement.core import handler, hook
def example_plugin_hook(app):
# do something with the ``app`` object here.
pass
class ExamplePluginController(CementBaseController):
class Meta:
# name that the controller is displayed at command line
label = 'example'
# text displayed next to the label in ``--help`` output
description = 'this is an example plugin controller'
# stack this controller on-top of ``base`` (or any other controller)
stacked_on = 'base'
# determines whether the controller is nested, or embedded
stacked_type = 'nested'
# these arguments are only going to display under
# ``$ ee example --help``
arguments = [
(
['-f', '--foo'],
dict(
help='Notorious foo option',
action='store',
)
)
]
@expose(hide=True)
def default(self):
print("Inside ExamplePluginController.default()")
@expose(help="this is an example sub-command.")
def example_plugin_command(self):
print("Inside ExamplePluginController.example_plugin_command()")
def load(app):
# register the plugin class.. this only happens if the plugin is enabled
handler.register(ExamplePluginController)
# register a hook (function) to run after arguments are parsed.
hook.register('post_argument_parsing', example_plugin_hook)