Browse code

refactor help func in CLI

Signed-off-by: Victor Vieux <victorvieux@gmail.com>

Victor Vieux authored on 2016/11/18 03:54:10
Showing 14 changed files
... ...
@@ -12,11 +12,8 @@ func NewCheckpointCommand(dockerCli *command.DockerCli) *cobra.Command {
12 12
 		Use:   "checkpoint",
13 13
 		Short: "Manage checkpoints",
14 14
 		Args:  cli.NoArgs,
15
-		Run: func(cmd *cobra.Command, args []string) {
16
-			cmd.SetOutput(dockerCli.Err())
17
-			cmd.HelpFunc()(cmd, args)
18
-		},
19
-		Tags: map[string]string{"experimental": "", "version": "1.25"},
15
+		RunE:  dockerCli.ShowHelp,
16
+		Tags:  map[string]string{"experimental": "", "version": "1.25"},
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		newCreateCommand(dockerCli),
... ...
@@ -20,6 +20,7 @@ import (
20 20
 	dopts "github.com/docker/docker/opts"
21 21
 	"github.com/docker/go-connections/sockets"
22 22
 	"github.com/docker/go-connections/tlsconfig"
23
+	"github.com/spf13/cobra"
23 24
 	"golang.org/x/net/context"
24 25
 )
25 26
 
... ...
@@ -73,6 +74,13 @@ func (cli *DockerCli) In() *InStream {
73 73
 	return cli.in
74 74
 }
75 75
 
76
+// ShowHelp shows the command help.
77
+func (cli *DockerCli) ShowHelp(cmd *cobra.Command, args []string) error {
78
+	cmd.SetOutput(cli.err)
79
+	cmd.HelpFunc()(cmd, args)
80
+	return nil
81
+}
82
+
76 83
 // ConfigFile returns the ConfigFile
77 84
 func (cli *DockerCli) ConfigFile() *configfile.ConfigFile {
78 85
 	return cli.configFile
... ...
@@ -13,10 +13,7 @@ func NewContainerCommand(dockerCli *command.DockerCli) *cobra.Command {
13 13
 		Use:   "container",
14 14
 		Short: "Manage containers",
15 15
 		Args:  cli.NoArgs,
16
-		Run: func(cmd *cobra.Command, args []string) {
17
-			cmd.SetOutput(dockerCli.Err())
18
-			cmd.HelpFunc()(cmd, args)
19
-		},
16
+		RunE:  dockerCli.ShowHelp,
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		NewAttachCommand(dockerCli),
... ...
@@ -13,10 +13,7 @@ func NewImageCommand(dockerCli *command.DockerCli) *cobra.Command {
13 13
 		Use:   "image",
14 14
 		Short: "Manage images",
15 15
 		Args:  cli.NoArgs,
16
-		Run: func(cmd *cobra.Command, args []string) {
17
-			cmd.SetOutput(dockerCli.Err())
18
-			cmd.HelpFunc()(cmd, args)
19
-		},
16
+		RunE:  dockerCli.ShowHelp,
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		NewBuildCommand(dockerCli),
... ...
@@ -13,10 +13,7 @@ func NewNetworkCommand(dockerCli *command.DockerCli) *cobra.Command {
13 13
 		Use:   "network",
14 14
 		Short: "Manage networks",
15 15
 		Args:  cli.NoArgs,
16
-		Run: func(cmd *cobra.Command, args []string) {
17
-			cmd.SetOutput(dockerCli.Err())
18
-			cmd.HelpFunc()(cmd, args)
19
-		},
16
+		RunE:  dockerCli.ShowHelp,
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		newConnectCommand(dockerCli),
... ...
@@ -14,10 +14,7 @@ func NewNodeCommand(dockerCli *command.DockerCli) *cobra.Command {
14 14
 		Use:   "node",
15 15
 		Short: "Manage Swarm nodes",
16 16
 		Args:  cli.NoArgs,
17
-		Run: func(cmd *cobra.Command, args []string) {
18
-			cmd.SetOutput(dockerCli.Err())
19
-			cmd.HelpFunc()(cmd, args)
20
-		},
17
+		RunE:  dockerCli.ShowHelp,
21 18
 	}
22 19
 	cmd.AddCommand(
23 20
 		newDemoteCommand(dockerCli),
... ...
@@ -12,10 +12,7 @@ func NewPluginCommand(dockerCli *command.DockerCli) *cobra.Command {
12 12
 		Use:   "plugin",
13 13
 		Short: "Manage plugins",
14 14
 		Args:  cli.NoArgs,
15
-		Run: func(cmd *cobra.Command, args []string) {
16
-			cmd.SetOutput(dockerCli.Err())
17
-			cmd.HelpFunc()(cmd, args)
18
-		},
15
+		RunE:  dockerCli.ShowHelp,
19 16
 	}
20 17
 
21 18
 	cmd.AddCommand(
... ...
@@ -1,8 +1,6 @@
1 1
 package secret
2 2
 
3 3
 import (
4
-	"fmt"
5
-
6 4
 	"github.com/spf13/cobra"
7 5
 
8 6
 	"github.com/docker/docker/cli"
... ...
@@ -15,9 +13,7 @@ func NewSecretCommand(dockerCli *command.DockerCli) *cobra.Command {
15 15
 		Use:   "secret",
16 16
 		Short: "Manage Docker secrets",
17 17
 		Args:  cli.NoArgs,
18
-		Run: func(cmd *cobra.Command, args []string) {
19
-			fmt.Fprintf(dockerCli.Err(), "\n"+cmd.UsageString())
20
-		},
18
+		RunE:  dockerCli.ShowHelp,
21 19
 	}
22 20
 	cmd.AddCommand(
23 21
 		newSecretListCommand(dockerCli),
... ...
@@ -13,10 +13,7 @@ func NewServiceCommand(dockerCli *command.DockerCli) *cobra.Command {
13 13
 		Use:   "service",
14 14
 		Short: "Manage services",
15 15
 		Args:  cli.NoArgs,
16
-		Run: func(cmd *cobra.Command, args []string) {
17
-			cmd.SetOutput(dockerCli.Err())
18
-			cmd.HelpFunc()(cmd, args)
19
-		},
16
+		RunE:  dockerCli.ShowHelp,
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		newCreateCommand(dockerCli),
... ...
@@ -12,11 +12,8 @@ func NewStackCommand(dockerCli *command.DockerCli) *cobra.Command {
12 12
 		Use:   "stack",
13 13
 		Short: "Manage Docker stacks",
14 14
 		Args:  cli.NoArgs,
15
-		Run: func(cmd *cobra.Command, args []string) {
16
-			cmd.SetOutput(dockerCli.Err())
17
-			cmd.HelpFunc()(cmd, args)
18
-		},
19
-		Tags: map[string]string{"experimental": "", "version": "1.25"},
15
+		RunE:  dockerCli.ShowHelp,
16
+		Tags:  map[string]string{"experimental": "", "version": "1.25"},
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		newDeployCommand(dockerCli),
... ...
@@ -13,10 +13,7 @@ func NewSwarmCommand(dockerCli *command.DockerCli) *cobra.Command {
13 13
 		Use:   "swarm",
14 14
 		Short: "Manage Swarm",
15 15
 		Args:  cli.NoArgs,
16
-		Run: func(cmd *cobra.Command, args []string) {
17
-			cmd.SetOutput(dockerCli.Err())
18
-			cmd.HelpFunc()(cmd, args)
19
-		},
16
+		RunE:  dockerCli.ShowHelp,
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		newInitCommand(dockerCli),
... ...
@@ -13,10 +13,7 @@ func NewSystemCommand(dockerCli *command.DockerCli) *cobra.Command {
13 13
 		Use:   "system",
14 14
 		Short: "Manage Docker",
15 15
 		Args:  cli.NoArgs,
16
-		Run: func(cmd *cobra.Command, args []string) {
17
-			cmd.SetOutput(dockerCli.Err())
18
-			cmd.HelpFunc()(cmd, args)
19
-		},
16
+		RunE:  dockerCli.ShowHelp,
20 17
 	}
21 18
 	cmd.AddCommand(
22 19
 		NewEventsCommand(dockerCli),
... ...
@@ -14,10 +14,7 @@ func NewVolumeCommand(dockerCli *command.DockerCli) *cobra.Command {
14 14
 		Short: "Manage volumes",
15 15
 		Long:  volumeDescription,
16 16
 		Args:  cli.NoArgs,
17
-		Run: func(cmd *cobra.Command, args []string) {
18
-			cmd.SetOutput(dockerCli.Err())
19
-			cmd.HelpFunc()(cmd, args)
20
-		},
17
+		RunE:  dockerCli.ShowHelp,
21 18
 	}
22 19
 	cmd.AddCommand(
23 20
 		newCreateCommand(dockerCli),
... ...
@@ -34,9 +34,7 @@ func newDockerCommand(dockerCli *command.DockerCli) *cobra.Command {
34 34
 				showVersion()
35 35
 				return nil
36 36
 			}
37
-			cmd.SetOutput(dockerCli.Err())
38
-			cmd.HelpFunc()(cmd, args)
39
-			return nil
37
+			return dockerCli.ShowHelp(cmd, args)
40 38
 		},
41 39
 		PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
42 40
 			// daemon command is special, we redirect directly to another binary