From 0e37dd49f0a1df15f18bac4734201d198f67a548 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 11 Jan 2024 18:17:47 +0100 Subject: [PATCH] cmd/docker: registerCompletionFuncForGlobalFlags: take store.Store as argument Update this function to accept a smaller interface, as it doesn't need all of "CLI". Also return errors encountered during its operation (although the caller currently has no error return on its own). Signed-off-by: Sebastiaan van Stijn --- cmd/docker/completions.go | 17 ++++++++++++----- cmd/docker/docker.go | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/docker/completions.go b/cmd/docker/completions.go index 15e078f8de..582a2051e3 100644 --- a/cmd/docker/completions.go +++ b/cmd/docker/completions.go @@ -1,27 +1,34 @@ package main import ( - "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/context/store" "github.com/spf13/cobra" ) -func registerCompletionFuncForGlobalFlags(dockerCli *command.DockerCli, cmd *cobra.Command) { - cmd.RegisterFlagCompletionFunc( +func registerCompletionFuncForGlobalFlags(contextStore store.Store, cmd *cobra.Command) error { + err := cmd.RegisterFlagCompletionFunc( "context", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - names, err := store.Names(dockerCli.ContextStore()) + names, err := store.Names(contextStore) if err != nil { return nil, cobra.ShellCompDirectiveError } return names, cobra.ShellCompDirectiveNoFileComp }, ) - cmd.RegisterFlagCompletionFunc( + if err != nil { + return err + } + err = cmd.RegisterFlagCompletionFunc( "log-level", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { values := []string{"debug", "info", "warn", "error", "fatal"} return values, cobra.ShellCompDirectiveNoFileComp }, ) + if err != nil { + return err + } + + return nil } diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index e2d8d07f08..f4a2499f1a 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -59,7 +59,7 @@ func newDockerCommand(dockerCli *command.DockerCli) *cli.TopLevelCommand { cmd.SetErr(dockerCli.Err()) opts, helpCmd = cli.SetupRootCommand(cmd) - registerCompletionFuncForGlobalFlags(dockerCli, cmd) + _ = registerCompletionFuncForGlobalFlags(dockerCli.ContextStore(), cmd) cmd.Flags().BoolP("version", "v", false, "Print version information and quit") setFlagErrorFunc(dockerCli, cmd)