1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Handle bad options better

* Do not log bad options error message twice, e.g.:

    $ docker run --pouet
    flag provided but not defined: --pouet
    See 'docker run --help'.
    2014/11/05 21:41:23 flag provided but not defined: --pouet

  With this patch just the first two lines will be produced.

* Print 'docker' just once when run without a command, e.g.:

    $ docker --hel
    flag provided but not defined: --hel
    See 'docker docker --help'.

Signed-off-by: Michal Minar <miminar@redhat.com>
This commit is contained in:
Michal Minar 2014-11-13 15:39:51 +01:00
parent 41be2f73c7
commit 1d09fc22ca
3 changed files with 13 additions and 5 deletions

View file

@ -2187,7 +2187,7 @@ func (cli *DockerCli) CmdCreate(args ...string) error {
config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
if err != nil {
return err
return &utils.StatusError{StatusCode: 1}
}
if config.Image == "" {
cmd.Usage()
@ -2223,7 +2223,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
if err != nil {
return err
return &utils.StatusError{StatusCode: 1}
}
if config.Image == "" {
cmd.Usage()
@ -2511,7 +2511,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
execConfig, err := runconfig.ParseExec(cmd, args)
if execConfig.Container == "" || err != nil {
return err
return &utils.StatusError{StatusCode: 1}
}
stream, _, err := cli.call("POST", "/containers/"+execConfig.Container+"/exec", execConfig, false)

View file

@ -852,7 +852,11 @@ func Var(value Value, names []string, usage string) {
func (f *FlagSet) failf(format string, a ...interface{}) error {
err := fmt.Errorf(format, a...)
fmt.Fprintln(f.Out(), err)
fmt.Fprintf(f.Out(), "See 'docker %s --help'.\n", f.name)
if os.Args[0] == f.name {
fmt.Fprintf(f.Out(), "See '%s --help'.\n", os.Args[0])
} else {
fmt.Fprintf(f.Out(), "See '%s %s --help'.\n", os.Args[0], f.name)
}
return err
}

View file

@ -25,7 +25,11 @@ func ParseFlags(cmd *flag.FlagSet, args []string, withHelp bool) error {
}
if str := cmd.CheckArgs(); str != "" {
if withHelp {
str += ". See 'docker " + cmd.Name() + " --help'"
if os.Args[0] == cmd.Name() {
str += ". See '" + os.Args[0] + " " + cmd.Name() + " --help'"
} else {
str += ". See '" + os.Args[0] + " --help'"
}
}
fmt.Fprintf(cmd.Out(), "docker: %s.\n", str)
os.Exit(1)