1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/pkg/mflag
Dan Walsh 61b129d818 --help option and help command should print to stdout not stderr
--help and help are successful commands so output should not go to error.

QE teams have requested this change, also users doing docker help | less
or docker run --help | less would expect this to work.

Usage statement should only be printed when the user asks for it.
Errors should print error message and then suggest the docker COMMAND --help
command to see usage information.

The current behaviour causes the user to have to search for the error message
and sometimes scrolls right off the screen.  For example a error on a
"docker run" command is very difficult to diagnose.

Finally erros should always exit with a non 0 exit code, if the user
makes a CLI error.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-08-21 15:35:20 -04:00
..
example update go import path and libcontainer 2014-07-24 22:19:50 +00:00
flag.go --help option and help command should print to stdout not stderr 2014-08-21 15:35:20 -04:00
flag_test.go update go import path and libcontainer 2014-07-24 22:19:50 +00:00
LICENSE update commands.go 2014-01-17 17:33:15 -08:00
MAINTAINERS update MAINTAINERS files 2014-06-16 22:20:07 +00:00
README.md update commands.go 2014-01-17 17:33:15 -08:00

Package mflag (aka multiple-flag) implements command-line flag parsing.
It's an hacky fork of the official golang package

It adds:

  • both short and long flag version
    ./example -s red ./example --string blue

  • multiple names for the same option

$>./example -h
Usage of example:
  -s, --string="": a simple string

It is very flexible on purpose, so you can do things like:

$>./example -h
Usage of example:
  -s, -string, --string="": a simple string

Or:

$>./example -h
Usage of example:
  -oldflag, --newflag="": a simple string

You can also hide some flags from the usage, so if we want only --newflag:

$>./example -h
Usage of example:
  --newflag="": a simple string
$>./example -oldflag str
str

See example.go for more details.