Add plugin CLI for interacting with the plugin catalog (#4911)

* Add 'plugin list' command

* Add 'plugin register' command

* Add 'plugin deregister' command

* Use a shared plugin helper

* Add 'plugin read' command

* Rename to plugin info

* Add base plugin for help text

* Fix arg ordering

* Add docs

* Rearrange to alphabetize

* Fix arg ordering in example

* Don't use "sudo" in command description
This commit is contained in:
Seth Vargo
2018-07-13 13:35:08 -04:00
committed by Brian Kassouf
parent 80a0d56361
commit c50881b274
19 changed files with 1382 additions and 2 deletions

46
command/plugin.go Normal file
View File

@@ -0,0 +1,46 @@
package command
import (
"strings"
"github.com/mitchellh/cli"
)
var _ cli.Command = (*PluginCommand)(nil)
type PluginCommand struct {
*BaseCommand
}
func (c *PluginCommand) Synopsis() string {
return "Interact with Vault plugins and catalog"
}
func (c *PluginCommand) Help() string {
helpText := `
Usage: vault plugin <subcommand> [options] [args]
This command groups subcommands for interacting with Vault's plugins and the
plugin catalog. Here are a few examples of the plugin commands:
List all available plugins in the catalog:
$ vault plugin list
Register a new plugin to the catalog:
$ vault plugin register -sha256=d3f0a8b... my-custom-plugin
Get information about a plugin in the catalog:
$ vault plugin info my-custom-plugin
Please see the individual subcommand help for detailed usage information.
`
return strings.TrimSpace(helpText)
}
func (c *PluginCommand) Run(args []string) int {
return cli.RunResultHelp
}