From f8c5f5d9b87ef6b61e6daa5c410e10fbda8249aa Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 21 Feb 2019 18:27:51 +0100 Subject: [PATCH] Show plugins as Management commands Plugins are expected to be management commands ("docker "). This patch modified the usage output to shown plugins in the "Management commands" section. Signed-off-by: Sebastiaan van Stijn --- cli/cobra.go | 9 ++++++--- e2e/cli-plugins/help_test.go | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cli/cobra.go b/cli/cobra.go index 141ca109ae..803872ee5a 100644 --- a/cli/cobra.go +++ b/cli/cobra.go @@ -139,7 +139,7 @@ func hasInvalidPlugins(cmd *cobra.Command) bool { func operationSubCommands(cmd *cobra.Command) []*cobra.Command { cmds := []*cobra.Command{} for _, sub := range cmd.Commands() { - if isPlugin(sub) && invalidPluginReason(sub) != "" { + if isPlugin(sub) { continue } if sub.IsAvailableCommand() && !sub.HasSubCommands() { @@ -179,7 +179,10 @@ func vendorAndVersion(cmd *cobra.Command) string { func managementSubCommands(cmd *cobra.Command) []*cobra.Command { cmds := []*cobra.Command{} for _, sub := range cmd.Commands() { - if isPlugin(sub) && invalidPluginReason(sub) != "" { + if isPlugin(sub) { + if invalidPluginReason(sub) == "" { + cmds = append(cmds, sub) + } continue } if sub.IsAvailableCommand() && sub.HasSubCommands() { @@ -245,7 +248,7 @@ Management Commands: Commands: {{- range operationSubCommands . }} - {{rpad (decoratedName .) (add .NamePadding 1)}}{{.Short}}{{ if isPlugin .}} {{vendorAndVersion .}}{{ end}} + {{rpad .Name .NamePadding }} {{.Short}} {{- end}} {{- end}} diff --git a/e2e/cli-plugins/help_test.go b/e2e/cli-plugins/help_test.go index 3d6299ee7f..8e57ccc876 100644 --- a/e2e/cli-plugins/help_test.go +++ b/e2e/cli-plugins/help_test.go @@ -41,10 +41,10 @@ func TestGlobalHelp(t *testing.T) { regexp.MustCompile(`^A self-sufficient runtime for containers$`), regexp.MustCompile(`^Management Commands:$`), regexp.MustCompile(`^ container\s+Manage containers$`), + helloworldre, + regexp.MustCompile(`^ image\s+Manage images$`), regexp.MustCompile(`^Commands:$`), regexp.MustCompile(`^ create\s+Create a new container$`), - helloworldre, - regexp.MustCompile(`^ ps\s+List containers$`), regexp.MustCompile(`^Invalid Plugins:$`), badmetare, nil, // scan to end of input rather than stopping at badmetare