Source code for cloudmesh_client.shell.plugins.ManCommand

from __future__ import print_function
import textwrap

from cloudmesh_client.shell.command import command
from cloudmesh_client.shell.command import PluginCommand, ShellPluginCommand, \
    CometPluginCommand


# noinspection PyBroadException
[docs]class ManCommand(PluginCommand, ShellPluginCommand, CometPluginCommand): topics = {"man": "shell"} def __init__(self, context): self.context = context if self.context.debug: print("init command man") def _print_rst(self, what): """ prints the rst page of the command what :param what: the command :type what: string """ print print("Command - %s::" % what) h = None exec("h = self.do_%s.__doc__" % what) # noinspection PyUnboundLocalVariable h = textwrap.dedent(h).replace("::\n\n", "") h = textwrap.dedent(h).replace("\n", "\n ") print(h) # noinspection PyUnusedLocal @command def do_man(self, args, arguments): """ :: Usage: man COMMAND man [--noheader] Options: --norule no rst header Arguments: COMMAND the command to be printed Description: man Prints out the help pages man COMMAND Prints out the help page for a specific command """ if arguments['COMMAND'] is None: print print("Commands") print(70 * "=") commands = [k for k in dir(self) if k.startswith("do_")] commands = sorted(commands, key=str.lower) else: print(arguments) commands = [arguments['COMMAND']] for command in commands: what = command.replace("do_", "") try: if not arguments["--noheader"]: print(what) print(70 * "-") self._print_rst(what) except: print("\n Command documentation %s missing, help_%s" % (what, what)) print return ""