Add INTERNAL flag to frontend plugins. If set, the plugin won't show in UI.

This commit is contained in:
Pavel Zuna 2010-03-16 15:06:07 +01:00 committed by Rob Crittenden
parent c19911845d
commit 43ab2c483d
2 changed files with 6 additions and 1 deletions

View File

@ -612,6 +612,8 @@ class help(frontend.Command):
# build help topics
for c in self.Command():
if c.INTERNAL:
continue
topic = self._get_command_module(c.module)
if topic:
self._topics.setdefault(topic, [0]).append(c)
@ -779,7 +781,7 @@ class cli(backend.Executioner):
self.create_context()
(key, argv) = (argv[0], argv[1:])
name = from_cli(key)
if name not in self.Command:
if name not in self.Command or self.Command[name].INTERNAL:
raise CommandError(name=key)
cmd = self.Command[name]
kw = self.parse(cmd, argv)

View File

@ -201,6 +201,9 @@ class HasParam(Plugin):
of ``api.env.context``, subclasses can override this with implementations
that consider arbitrary ``api.env`` values.
"""
# HasParam is the base class for most frontend plugins, that make it to users
# This flag should be used by UI components to make the plugin unaccessible
INTERNAL = False
def _get_param_iterable(self, name, verb='takes'):
"""