From bf95472105e5dad55314cfff599abea5b81b134a Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 17 Nov 2016 10:54:10 -0800 Subject: [PATCH] refactor help func in CLI Signed-off-by: Victor Vieux --- cli/command/checkpoint/cmd.go | 7 ++----- cli/command/cli.go | 8 ++++++++ cli/command/container/cmd.go | 5 +---- cli/command/image/cmd.go | 5 +---- cli/command/network/cmd.go | 5 +---- cli/command/node/cmd.go | 5 +---- cli/command/plugin/cmd.go | 5 +---- cli/command/secret/cmd.go | 6 +----- cli/command/service/cmd.go | 5 +---- cli/command/stack/cmd.go | 7 ++----- cli/command/swarm/cmd.go | 5 +---- cli/command/system/cmd.go | 5 +---- cli/command/volume/cmd.go | 5 +---- cmd/docker/docker.go | 4 +--- 14 files changed, 23 insertions(+), 54 deletions(-) diff --git a/cli/command/checkpoint/cmd.go b/cli/command/checkpoint/cmd.go index f186232a4d..d5705a4dad 100644 --- a/cli/command/checkpoint/cmd.go +++ b/cli/command/checkpoint/cmd.go @@ -12,11 +12,8 @@ func NewCheckpointCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "checkpoint", Short: "Manage checkpoints", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, - Tags: map[string]string{"experimental": "", "version": "1.25"}, + RunE: dockerCli.ShowHelp, + Tags: map[string]string{"experimental": "", "version": "1.25"}, } cmd.AddCommand( newCreateCommand(dockerCli), diff --git a/cli/command/cli.go b/cli/command/cli.go index ef9de2edf1..99ea6331af 100644 --- a/cli/command/cli.go +++ b/cli/command/cli.go @@ -20,6 +20,7 @@ import ( dopts "github.com/docker/docker/opts" "github.com/docker/go-connections/sockets" "github.com/docker/go-connections/tlsconfig" + "github.com/spf13/cobra" "golang.org/x/net/context" ) @@ -73,6 +74,13 @@ func (cli *DockerCli) In() *InStream { return cli.in } +// ShowHelp shows the command help. +func (cli *DockerCli) ShowHelp(cmd *cobra.Command, args []string) error { + cmd.SetOutput(cli.err) + cmd.HelpFunc()(cmd, args) + return nil +} + // ConfigFile returns the ConfigFile func (cli *DockerCli) ConfigFile() *configfile.ConfigFile { return cli.configFile diff --git a/cli/command/container/cmd.go b/cli/command/container/cmd.go index 075f936bd9..3e9b4880ac 100644 --- a/cli/command/container/cmd.go +++ b/cli/command/container/cmd.go @@ -13,10 +13,7 @@ func NewContainerCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "container", Short: "Manage containers", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( NewAttachCommand(dockerCli), diff --git a/cli/command/image/cmd.go b/cli/command/image/cmd.go index dc98257438..c3ca61f85b 100644 --- a/cli/command/image/cmd.go +++ b/cli/command/image/cmd.go @@ -13,10 +13,7 @@ func NewImageCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "image", Short: "Manage images", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( NewBuildCommand(dockerCli), diff --git a/cli/command/network/cmd.go b/cli/command/network/cmd.go index c2a7e83dd8..ab8393cded 100644 --- a/cli/command/network/cmd.go +++ b/cli/command/network/cmd.go @@ -13,10 +13,7 @@ func NewNetworkCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "network", Short: "Manage networks", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( newConnectCommand(dockerCli), diff --git a/cli/command/node/cmd.go b/cli/command/node/cmd.go index d70ee81789..e71b9199ad 100644 --- a/cli/command/node/cmd.go +++ b/cli/command/node/cmd.go @@ -14,10 +14,7 @@ func NewNodeCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "node", Short: "Manage Swarm nodes", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( newDemoteCommand(dockerCli), diff --git a/cli/command/plugin/cmd.go b/cli/command/plugin/cmd.go index 6e1160fd91..2173943f89 100644 --- a/cli/command/plugin/cmd.go +++ b/cli/command/plugin/cmd.go @@ -12,10 +12,7 @@ func NewPluginCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "plugin", Short: "Manage plugins", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( diff --git a/cli/command/secret/cmd.go b/cli/command/secret/cmd.go index 995300ad77..79e669858c 100644 --- a/cli/command/secret/cmd.go +++ b/cli/command/secret/cmd.go @@ -1,8 +1,6 @@ package secret import ( - "fmt" - "github.com/spf13/cobra" "github.com/docker/docker/cli" @@ -15,9 +13,7 @@ func NewSecretCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "secret", Short: "Manage Docker secrets", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - fmt.Fprintf(dockerCli.Err(), "\n"+cmd.UsageString()) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( newSecretListCommand(dockerCli), diff --git a/cli/command/service/cmd.go b/cli/command/service/cmd.go index 63f2db7171..796fe926c3 100644 --- a/cli/command/service/cmd.go +++ b/cli/command/service/cmd.go @@ -13,10 +13,7 @@ func NewServiceCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "service", Short: "Manage services", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( newCreateCommand(dockerCli), diff --git a/cli/command/stack/cmd.go b/cli/command/stack/cmd.go index ff71e0ddfa..8626dc7fe4 100644 --- a/cli/command/stack/cmd.go +++ b/cli/command/stack/cmd.go @@ -12,11 +12,8 @@ func NewStackCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "stack", Short: "Manage Docker stacks", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, - Tags: map[string]string{"experimental": "", "version": "1.25"}, + RunE: dockerCli.ShowHelp, + Tags: map[string]string{"experimental": "", "version": "1.25"}, } cmd.AddCommand( newDeployCommand(dockerCli), diff --git a/cli/command/swarm/cmd.go b/cli/command/swarm/cmd.go index 6c70459df0..632679c4b6 100644 --- a/cli/command/swarm/cmd.go +++ b/cli/command/swarm/cmd.go @@ -13,10 +13,7 @@ func NewSwarmCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "swarm", Short: "Manage Swarm", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( newInitCommand(dockerCli), diff --git a/cli/command/system/cmd.go b/cli/command/system/cmd.go index 9cd74b5d4b..ab3beb895a 100644 --- a/cli/command/system/cmd.go +++ b/cli/command/system/cmd.go @@ -13,10 +13,7 @@ func NewSystemCommand(dockerCli *command.DockerCli) *cobra.Command { Use: "system", Short: "Manage Docker", Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( NewEventsCommand(dockerCli), diff --git a/cli/command/volume/cmd.go b/cli/command/volume/cmd.go index 39e4b7f46e..40862f29d1 100644 --- a/cli/command/volume/cmd.go +++ b/cli/command/volume/cmd.go @@ -14,10 +14,7 @@ func NewVolumeCommand(dockerCli *command.DockerCli) *cobra.Command { Short: "Manage volumes", Long: volumeDescription, Args: cli.NoArgs, - Run: func(cmd *cobra.Command, args []string) { - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - }, + RunE: dockerCli.ShowHelp, } cmd.AddCommand( newCreateCommand(dockerCli), diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index e6b5048564..1e07cc8d7b 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -34,9 +34,7 @@ func newDockerCommand(dockerCli *command.DockerCli) *cobra.Command { showVersion() return nil } - cmd.SetOutput(dockerCli.Err()) - cmd.HelpFunc()(cmd, args) - return nil + return dockerCli.ShowHelp(cmd, args) }, PersistentPreRunE: func(cmd *cobra.Command, args []string) error { // daemon command is special, we redirect directly to another binary