Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Signed-off-by: Harald Albers <[email protected]>
Co-authored-by: Sebastiaan van Stijn <[email protected]>
  • Loading branch information
albers and thaJeztah committed Oct 29, 2024
1 parent 2926d0f commit ad9b4b8
Showing 1 changed file with 22 additions and 26 deletions.
48 changes: 22 additions & 26 deletions cli/command/system/completion.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,38 +87,34 @@ var (
// completeEventFilters provides completion for the filters that can be used with `--filter`.
func completeEventFilters(dockerCLI completion.APIClientProvider) completion.ValidArgsFn {
return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
if strings.HasPrefix(toComplete, "container=") {
return prefixWith("container=", containerNames(dockerCLI, cmd, args, toComplete)), cobra.ShellCompDirectiveNoFileComp
key, _, ok := strings.Cut(toComplete, "=")
if !ok {
return postfixWith("=", eventFilters), cobra.ShellCompDirectiveNoSpace
}
if strings.HasPrefix(toComplete, "daemon=") {
switch key {
case "container":
return prefixWith("container=", containerNames(dockerCLI, cmd, args, toComplete)), cobra.ShellCompDirectiveNoFileComp
case "daemon":
return prefixWith("daemon=", daemonNames(dockerCLI, cmd)), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "event=") {
case "event":
return prefixWith("event=", validEventNames()), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "image=") {
case "image":
return prefixWith("image=", imageNames(dockerCLI, cmd)), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "label=") {
case "label":
return nil, cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "network=") {
case "network":
return prefixWith("network=", networkNames(dockerCLI, cmd)), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "node=") {
case "node":
return prefixWith("node=", nodeNames(dockerCLI, cmd)), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "scope=") {
case "scope":
return prefixWith("scope=", []string{"local", "swarm"}), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "type=") {
case "type":
return prefixWith("type=", eventTypeNames()), cobra.ShellCompDirectiveNoFileComp
}
if strings.HasPrefix(toComplete, "volume=") {
case "volume":
return prefixWith("volume=", volumeNames(dockerCLI, cmd)), cobra.ShellCompDirectiveNoFileComp
default:
return postfixWith("=", eventFilters), cobra.ShellCompDirectiveNoSpace | cobra.ShellCompDirectiveNoFileComp
}

return postfixWith("=", eventFilters), cobra.ShellCompDirectiveNoSpace
}
}

Expand Down Expand Up @@ -154,7 +150,7 @@ func eventTypeNames() []string {
// The list is derived from eventActions.
// Actions that are not suitable for usage in completions are removed.
func validEventNames() []string {
names := []string{}
names := make([]string, 0, len(eventActions))
for _, eventAction := range eventActions {
if strings.Contains(string(eventAction), " ") {
continue
Expand Down Expand Up @@ -191,7 +187,7 @@ func imageNames(dockerCLI completion.APIClientProvider, cmd *cobra.Command) []st
if err != nil {
return []string{}
}
names := []string{}
names := make([]string, 0, len(list))
for _, img := range list {
names = append(names, img.RepoTags...)
}
Expand All @@ -205,7 +201,7 @@ func networkNames(dockerCLI completion.APIClientProvider, cmd *cobra.Command) []
if err != nil {
return []string{}
}
names := []string{}
names := make([]string, 0, len(list))
for _, nw := range list {
names = append(names, nw.Name)
}
Expand All @@ -219,7 +215,7 @@ func nodeNames(dockerCLI completion.APIClientProvider, cmd *cobra.Command) []str
if err != nil {
return []string{}
}
names := []string{}
names := make([]string, 0, len(list))
for _, node := range list {
names = append(names, node.Description.Hostname)
}
Expand All @@ -233,7 +229,7 @@ func volumeNames(dockerCLI completion.APIClientProvider, cmd *cobra.Command) []s
if err != nil {
return []string{}
}
names := []string{}
names := make([]string, 0, len(list.Volumes))
for _, v := range list.Volumes {
names = append(names, v.Name)
}
Expand Down

0 comments on commit ad9b4b8

Please sign in to comment.