diff --git a/ee/cli/bootstrap.py b/ee/cli/bootstrap.py index de3c5108..b22b6ca3 100644 --- a/ee/cli/bootstrap.py +++ b/ee/cli/bootstrap.py @@ -5,9 +5,6 @@ from cement.core import handler from ee.cli.controllers.base import EEBaseController -from ee.cli.controllers.site import EESiteController -from ee.cli.controllers.site import EESiteCreateController -from ee.cli.controllers.site import EESiteUpdateController from ee.cli.controllers.debug import EEDebugController from ee.cli.controllers.clean import EECleanController from ee.cli.controllers.secure import EESecureController @@ -17,9 +14,6 @@ from ee.cli.controllers.info import EEInfoController def load(app): handler.register(EEBaseController) - handler.register(EESiteController) - handler.register(EESiteCreateController) - handler.register(EESiteUpdateController) handler.register(EEDebugController) handler.register(EECleanController) handler.register(EEInfoController) diff --git a/ee/cli/controllers/site.py b/ee/cli/plugins/site.py similarity index 89% rename from ee/cli/controllers/site.py rename to ee/cli/plugins/site.py index bee9cb9e..7848c305 100644 --- a/ee/cli/controllers/site.py +++ b/ee/cli/plugins/site.py @@ -1,7 +1,11 @@ """EasyEngine site controller.""" - from cement.core.controller import CementBaseController, expose -from ee.core.dummy import EEDummy +from cement.core import handler, hook + + +def ee_site_hook(app): + # do something with the ``app`` object here. + pass class EESiteController(CementBaseController): @@ -9,8 +13,8 @@ class EESiteController(CementBaseController): label = 'site' stacked_on = 'base' stacked_type = 'nested' - description = 'site command manages website configuration with the help \ - of the following subcommands' + description = ('site command manages website configuration' + 'with the help of the following subcommands') arguments = [ (['site_name'], dict(help='website name')), @@ -142,3 +146,13 @@ class EESiteUpdateController(CementBaseController): # The 'default.mustache' file would be loaded from # ``ee.cli.templates``, or ``/var/lib/ee/templates/``. # + + +def load(app): + # register the plugin class.. this only happens if the plugin is enabled + handler.register(EESiteController) + handler.register(EESiteCreateController) + handler.register(EESiteUpdateController) + + # register a hook (function) to run after arguments are parsed. + hook.register('post_argument_parsing', ee_site_hook)