From e2b5dde1a05f7352c13f217c4b4a81c31804573c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 25 Mar 2023 02:32:58 +0100 Subject: [PATCH] remove cobra v2 completion for plugins Signed-off-by: CrazyMax --- cmd/docker/docker.go | 21 +++++++++++---------- e2e/cli-plugins/run_test.go | 6 +++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index 9becec2c0776..359202217654 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -133,13 +133,20 @@ func tryRunPluginHelp(dockerCli command.Cli, ccmd *cobra.Command, cargs []string func setHelpFunc(dockerCli command.Cli, cmd *cobra.Command) { defaultHelpFunc := cmd.HelpFunc() cmd.SetHelpFunc(func(ccmd *cobra.Command, args []string) { - if pluginmanager.IsPluginCommand(ccmd) { + if err := pluginmanager.AddPluginCommandStubs(dockerCli, ccmd.Root()); err != nil { + ccmd.Println(err) + return + } + + if len(args) >= 1 { err := tryRunPluginHelp(dockerCli, ccmd, args) + if err == nil { + return + } if !pluginmanager.IsNotFound(err) { ccmd.Println(err) + return } - cmd.PrintErrf("unknown help topic: %v\n", ccmd.Name()) - return } if err := isSupported(ccmd, dockerCli); err != nil { @@ -227,14 +234,8 @@ func runDocker(dockerCli *command.DockerCli) error { return err } - err = pluginmanager.AddPluginCommandStubs(dockerCli, cmd) - if err != nil { - return err - } - if len(args) > 0 { - ccmd, _, err := cmd.Find(args) - if err != nil || pluginmanager.IsPluginCommand(ccmd) { + if _, _, err := cmd.Find(args); err != nil { err := tryPluginRun(dockerCli, cmd, args[0], envs) if !pluginmanager.IsNotFound(err) { return err diff --git a/e2e/cli-plugins/run_test.go b/e2e/cli-plugins/run_test.go index 2a2f318f46c6..d3daa35563e3 100644 --- a/e2e/cli-plugins/run_test.go +++ b/e2e/cli-plugins/run_test.go @@ -83,7 +83,7 @@ func TestHelpBad(t *testing.T) { res := icmd.RunCmd(run("help", "badmeta")) res.Assert(t, icmd.Expected{ - ExitCode: 0, + ExitCode: 1, Out: icmd.None, }) golden.Assert(t, res.Stderr(), "docker-help-badmeta-err.golden") @@ -110,8 +110,8 @@ func TestBadHelp(t *testing.T) { res.Assert(t, icmd.Expected{ ExitCode: 0, // This should be identical to the --help case above - Out: usage, - Err: shortHFlagDeprecated, + Out: shortHFlagDeprecated + usage, + Err: icmd.None, }) }