github.1git.de/docker/cli@v26.1.3+incompatible/cli/command/config/cmd.go (about) 1 package config 2 3 import ( 4 "github.com/docker/cli/cli" 5 "github.com/docker/cli/cli/command" 6 "github.com/docker/cli/cli/command/completion" 7 "github.com/docker/docker/api/types" 8 "github.com/spf13/cobra" 9 ) 10 11 // NewConfigCommand returns a cobra command for `config` subcommands 12 func NewConfigCommand(dockerCli command.Cli) *cobra.Command { 13 cmd := &cobra.Command{ 14 Use: "config", 15 Short: "Manage Swarm configs", 16 Args: cli.NoArgs, 17 RunE: command.ShowHelp(dockerCli.Err()), 18 Annotations: map[string]string{ 19 "version": "1.30", 20 "swarm": "manager", 21 }, 22 } 23 cmd.AddCommand( 24 newConfigListCommand(dockerCli), 25 newConfigCreateCommand(dockerCli), 26 newConfigInspectCommand(dockerCli), 27 newConfigRemoveCommand(dockerCli), 28 ) 29 return cmd 30 } 31 32 // completeNames offers completion for swarm configs 33 func completeNames(dockerCli command.Cli) completion.ValidArgsFn { 34 return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { 35 list, err := dockerCli.Client().ConfigList(cmd.Context(), types.ConfigListOptions{}) 36 if err != nil { 37 return nil, cobra.ShellCompDirectiveError 38 } 39 var names []string 40 for _, config := range list { 41 names = append(names, config.ID) 42 } 43 return names, cobra.ShellCompDirectiveNoFileComp 44 } 45 }