moby--moby/pkg/mflag
Michal Minar 1d09fc22ca 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>
2015-01-06 13:44:27 +01:00
..
example 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
flag.go Handle bad options better 2015-01-06 13:44:27 +01:00
flag_test.go Remove TestUsage, since Usage will no longer be shown on failure to parse 2015-01-06 13:40:14 +01:00

README.md

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.