From a3fe7d62b8274d69930286fb14653cccf37acadb Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 18 May 2018 22:57:28 +0200 Subject: [PATCH] Use Cobra built-in --version feature Signed-off-by: Sebastiaan van Stijn --- cli/cobra.go | 1 + cli/flags/client.go | 1 - cmd/docker/docker.go | 14 ++------------ 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/cli/cobra.go b/cli/cobra.go index e97abd2a1..6c4a8c4bf 100644 --- a/cli/cobra.go +++ b/cli/cobra.go @@ -23,6 +23,7 @@ func SetupRootCommand(rootCmd *cobra.Command) { rootCmd.SetHelpTemplate(helpTemplate) rootCmd.SetFlagErrorFunc(FlagErrorFunc) rootCmd.SetHelpCommand(helpCommand) + rootCmd.SetVersionTemplate("Docker version {{.Version}}\n") rootCmd.PersistentFlags().BoolP("help", "h", false, "Print usage") rootCmd.PersistentFlags().MarkShorthandDeprecated("help", "please use --help") diff --git a/cli/flags/client.go b/cli/flags/client.go index 9b6940f6b..c57879e6a 100644 --- a/cli/flags/client.go +++ b/cli/flags/client.go @@ -4,7 +4,6 @@ package flags type ClientOptions struct { Common *CommonOptions ConfigDir string - Version bool } // NewClientOptions returns a new ClientOptions diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index b96c1e2a9..24def2e00 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -32,13 +32,6 @@ func newDockerCommand(dockerCli *command.DockerCli) *cobra.Command { SilenceErrors: true, TraverseChildren: true, Args: noArgs, - RunE: func(cmd *cobra.Command, args []string) error { - if opts.Version { - showVersion() - return nil - } - return command.ShowHelp(dockerCli.Err())(cmd, args) - }, PersistentPreRunE: func(cmd *cobra.Command, args []string) error { // flags must be the top-level command flags, not cmd.Flags() opts.Common.SetDefaultOptions(flags) @@ -48,11 +41,12 @@ func newDockerCommand(dockerCli *command.DockerCli) *cobra.Command { } return isSupported(cmd, dockerCli) }, + Version: fmt.Sprintf("%s, build %s", cli.Version, cli.GitCommit), } cli.SetupRootCommand(cmd) flags = cmd.Flags() - flags.BoolVarP(&opts.Version, "version", "v", false, "Print version information and quit") + flags.BoolP("version", "v", false, "Print version information and quit") flags.StringVar(&opts.ConfigDir, "config", cliconfig.Dir(), "Location of client config files") opts.Common.InstallFlags(flags) @@ -186,10 +180,6 @@ func contentTrustEnabled() bool { return false } -func showVersion() { - fmt.Printf("Docker version %s, build %s\n", cli.Version, cli.GitCommit) -} - func dockerPreRun(opts *cliflags.ClientOptions) { cliflags.SetLogLevel(opts.Common.LogLevel)