::

            Usage:
                plugins add COMMAND [--dryrun] [-q]
                plugins delete COMMAND [--dryrun] [-q]
                plugins list [--output=FORMAT] [-q]
                plugins activate

            Arguments:

                FORMAT   format is either yaml, json, or list [default=yaml]

            Options:

                -q        stands for quiet and suppresses additional messages

            Description:

                Please note that adding and deleting plugins requires restarting
                cm to activate them

                plugins list

                    lists the plugins in the yaml file

                plugins add COMMAND
                plugins delete COMMAND

                    cmd3 contains a ~/.cloudmesh/cmd3.yaml file.
                    This command will add/delete a plugin for a given command
                    that has been generated with cm-generate-command
                    To the yaml this command will add to the modules

                        - cloudmesh_COMMAND.plugins

                    where COMMAND is the name of the command. In case we add
                    a command and the command is out commented the comment
                    will be removed so the command is enabled.

                plugins activate

                    NOT YET SUPPORTED.

            Example:

                plugins add pbs

def do_plugins(self, args, arguments):
        """
        ::

            Usage:
                plugins add COMMAND [--dryrun] [-q]
                plugins delete COMMAND [--dryrun] [-q]
                plugins list [--output=FORMAT] [-q]
                plugins activate

            Arguments:

                FORMAT   format is either yaml, json, or list [default=yaml]

            Options:

                -q        stands for quiet and suppresses additional messages

            Description:

                Please note that adding and deleting plugins requires restarting
                cm to activate them

                plugins list

                    lists the plugins in the yaml file

                plugins add COMMAND
                plugins delete COMMAND

                    cmd3 contains a ~/.cloudmesh/cmd3.yaml file.
                    This command will add/delete a plugin for a given command
                    that has been generated with cm-generate-command
                    To the yaml this command will add to the modules

                        - cloudmesh_COMMAND.plugins

                    where COMMAND is the name of the command. In case we add
                    a command and the command is out commented the comment
                    will be removed so the command is enabled.

                plugins activate

                    NOT YET SUPPORTED.

            Example:

                plugins add pbs
        """
        # pprint(arguments)

        quiet = arguments["-q"]

        if arguments["activate"]:

            Console.error("this method is not yet supported.")
            self.activate()

        elif arguments["list"]:

            if arguments["--output"] == "yaml":
                plugins_object = setup_management(quiet=quiet)
                print(plugins_object.config.yaml())
            elif arguments["--output"] == "json":
                plugins_object = setup_management(quiet=quiet)
                print(plugins_object.config)
            elif arguments["--output"] == "list":
                plugins_object = setup_management(quiet=quiet)
                print(plugins_object.config["cmd3"]["modules"])
            if arguments["--output"] is None:
                plugins_object = setup_management(quiet=quiet)
                print(plugins_object)

        elif arguments["add"]:

            plugins_object = setup_management()
            plugins_object.add(arguments["COMMAND"],
                               dryrun=arguments["--dryrun"])


        elif arguments["delete"]:

            plugins_object = setup_management()
            plugins_object.delete(arguments["COMMAND"],
                               dryrun=arguments["--dryrun"])

        else:
            Console.error("unknown option.")