From 9af25060cd47681b359fe736b31336013022d949 Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Wed, 3 Aug 2016 12:20:46 -0400 Subject: [PATCH] Fix tests and windows service. Support args to RunCommand Fix docker help text test. Fix for ipv6 tests. Fix TLSverify option. Fix TestDaemonDiscoveryBackendConfigReload Use tempfile for another test. Restore missing flag. Fix tests for removal of shlex. Signed-off-by: Daniel Nephin --- daemon_none.go | 3 ++- docker.go | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/daemon_none.go b/daemon_none.go index c57896ed71..65f9f37be2 100644 --- a/daemon_none.go +++ b/daemon_none.go @@ -4,9 +4,10 @@ package main import ( "fmt" - "github.com/spf13/cobra" "runtime" "strings" + + "github.com/spf13/cobra" ) func newDaemonCommand() *cobra.Command { diff --git a/docker.go b/docker.go index 8d7861847f..38907970d3 100644 --- a/docker.go +++ b/docker.go @@ -19,13 +19,15 @@ import ( func newDockerCommand(dockerCli *client.DockerCli) *cobra.Command { opts := cliflags.NewClientOptions() + var flags *pflag.FlagSet + cmd := &cobra.Command{ Use: "docker [OPTIONS] COMMAND [arg...]", Short: "A self-sufficient runtime for containers.", SilenceUsage: true, SilenceErrors: true, TraverseChildren: true, - Args: cli.NoArgs, + Args: noArgs, RunE: func(cmd *cobra.Command, args []string) error { if opts.Version { showVersion() @@ -35,13 +37,15 @@ func newDockerCommand(dockerCli *client.DockerCli) *cobra.Command { return nil }, PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - dockerPreRun(cmd.Flags(), opts) + // flags must be the top-level command flags, not cmd.Flags() + opts.Common.SetDefaultOptions(flags) + dockerPreRun(opts) return dockerCli.Initialize(opts) }, } cli.SetupRootCommand(cmd) - flags := cmd.Flags() + flags = cmd.Flags() flags.BoolVarP(&opts.Version, "version", "v", false, "Print version information and quit") flags.StringVar(&opts.ConfigDir, "config", cliconfig.ConfigDir(), "Location of client config files") opts.Common.InstallFlags(flags) @@ -53,6 +57,14 @@ func newDockerCommand(dockerCli *client.DockerCli) *cobra.Command { return cmd } +func noArgs(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + return nil + } + return fmt.Errorf( + "docker: '%s' is not a docker command.\nSee 'docker --help'%s", args[0], ".") +} + func main() { // Set terminal emulation based on platform as required. stdin, stdout, stderr := term.StdStreams() @@ -86,8 +98,7 @@ func showVersion() { } } -func dockerPreRun(flags *pflag.FlagSet, opts *cliflags.ClientOptions) { - opts.Common.SetDefaultOptions(flags) +func dockerPreRun(opts *cliflags.ClientOptions) { cliflags.SetDaemonLogLevel(opts.Common.LogLevel) if opts.ConfigDir != "" {