Skip to content

Commit 531f7e1

Browse files
committed
cli/command/completion: change Platforms to return a cobra.CompletionFunc
It's adding a slight indirection by constructing a function when called, but makes the completion functions more consistent, the signature easier to read, and making the return type a [cobra.CompletionFunc] makes it more transparent what it's intended for, and helps discovery of functions that provide completion. [cobra.CompletionFunc]: https://pkg.go.dev/github.com/spf13/cobra#CompletionFunc Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 810be9f commit 531f7e1

File tree

12 files changed

+12
-12
lines changed

12 files changed

+12
-12
lines changed

cli/command/completion/functions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ var commonPlatforms = []string{
178178
// but don't have wide adoption (and no support), such as loong64, mipsXXX,
179179
// ppc64 (non-le) to prevent confusion.
180180
func Platforms() cobra.CompletionFunc {
181-
return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
181+
return func(_ *cobra.Command, _ []string, _ string) ([]string, cobra.ShellCompDirective) {
182182
return commonPlatforms, cobra.ShellCompDirectiveNoFileComp
183183
}
184184
}

cli/command/container/completion.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ func addCompletions(cmd *cobra.Command, dockerCLI completion.APIClientProvider)
130130
_ = cmd.RegisterFlagCompletionFunc("log-opt", completeLogOpt)
131131
_ = cmd.RegisterFlagCompletionFunc("network", completion.NetworkNames(dockerCLI))
132132
_ = cmd.RegisterFlagCompletionFunc("pid", completePid(dockerCLI))
133-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
133+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
134134
_ = cmd.RegisterFlagCompletionFunc("pull", completion.FromList(PullImageAlways, PullImageMissing, PullImageNever))
135135
_ = cmd.RegisterFlagCompletionFunc("restart", completeRestartPolicies)
136136
_ = cmd.RegisterFlagCompletionFunc("security-opt", completeSecurityOpt)

cli/command/container/create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func newCreateCommand(dockerCLI command.Cli) *cobra.Command {
8888

8989
// TODO(thaJeztah): consider adding platform as "image create option" on containerOptions
9090
addPlatformFlag(flags, &options.platform)
91-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
91+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
9292

9393
flags.BoolVar(&options.untrusted, "disable-content-trust", !dockerCLI.ContentTrustEnabled(), "Skip image verification")
9494
copts = addFlags(flags)

cli/command/image/build.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func newBuildCommand(dockerCLI command.Cli) *cobra.Command {
157157
flags.SetAnnotation("squash", "experimental", nil)
158158
flags.SetAnnotation("squash", "version", []string{"1.25"})
159159

160-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
160+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
161161

162162
return cmd
163163
}

cli/command/image/history.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func newHistoryCommand(dockerCLI command.Cli) *cobra.Command {
5252
flags.StringVar(&opts.platform, "platform", "", `Show history for the given platform. Formatted as "os[/arch[/variant]]" (e.g., "linux/amd64")`)
5353
_ = flags.SetAnnotation("platform", "version", []string{"1.48"})
5454

55-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
55+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
5656
return cmd
5757
}
5858

cli/command/image/import.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func newImportCommand(dockerCLI command.Cli) *cobra.Command {
4949
flags.VarP(&options.changes, "change", "c", "Apply Dockerfile instruction to the created image")
5050
flags.StringVarP(&options.message, "message", "m", "", "Set commit message for imported image")
5151
addPlatformFlag(flags, &options.platform)
52-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
52+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
5353

5454
return cmd
5555
}

cli/command/image/inspect.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ If the image or the server is not multi-platform capable, the command will error
5252
'os[/arch[/variant]]': Explicit platform (eg. linux/amd64)`)
5353
flags.SetAnnotation("platform", "version", []string{"1.49"})
5454

55-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
55+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
5656
return cmd
5757
}
5858

cli/command/image/load.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func newLoadCommand(dockerCLI command.Cli) *cobra.Command {
4848
flags.StringSliceVar(&opts.platform, "platform", []string{}, `Load only the given platform(s). Formatted as a comma-separated list of "os[/arch[/variant]]" (e.g., "linux/amd64,linux/arm64/v8").`)
4949
_ = flags.SetAnnotation("platform", "version", []string{"1.48"})
5050

51-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
51+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
5252
return cmd
5353
}
5454

cli/command/image/pull.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func newPullCommand(dockerCLI command.Cli) *cobra.Command {
5252
addPlatformFlag(flags, &opts.platform)
5353
flags.BoolVar(&opts.untrusted, "disable-content-trust", !dockerCLI.ContentTrustEnabled(), "Skip image verification")
5454

55-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
55+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
5656

5757
return cmd
5858
}

cli/command/image/push.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Image index won't be pushed, meaning that other manifests, including attestation
6969
'os[/arch[/variant]]': Explicit platform (eg. linux/amd64)`)
7070
flags.SetAnnotation("platform", "version", []string{"1.46"})
7171

72-
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
72+
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms())
7373

7474
return cmd
7575
}

0 commit comments

Comments
 (0)