pkg/mflag
Dan Walsh 6c3b7f1932 --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)
2015-01-06 13:40:14 +01: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 2015-01-06 13:40:14 +01:00
flag_test.go Add missing unit testcase for new IsSet() func in mflag 2014-11-22 05:37:36 -08: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.