cli: improve argument validation output
Improve the output for these validation errors:
- Removes the short command description from the output. This information
does not provide much useful help, and distracts from the error message.
- Reduces punctuation, and
- Prefixes the error message with the binary / root-command name
(usually `docker:`) to be consistent with other similar errors.
- Adds an empty line between the error-message and the "call to action"
(`Run 'docker volume --help'...` in the example below). This helps
separating the error message and "usage" from the call-to-action.
Before this patch:
$ docker volume ls one two three
"docker volume ls" accepts no arguments.
See 'docker volume ls --help'.
Usage: docker volume ls [OPTIONS]
List volumes
$ docker volume create one two three
"docker volume create" requires at most 1 argument.
See 'docker volume create --help'.
Usage: docker volume create [OPTIONS] [VOLUME]
Create a volume
With this patch:
$ docker volume ls one two three
docker: 'docker volume ls' accepts no arguments
Usage: docker volume ls [OPTIONS]
Run 'docker volume ls --help' for more information
$ docker voludocker volume create one two three
docker: 'docker volume create' requires at most 1 argument
Usage: docker volume create [OPTIONS] [VOLUME]
SRun 'docker volume create --help' for more information
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
@ -26,12 +26,12 @@ func TestTrustKeyGenerateErrors(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "not-enough-args",
|
||||
expectedError: "requires exactly 1 argument",
|
||||
expectedError: "requires 1 argument",
|
||||
},
|
||||
{
|
||||
name: "too-many-args",
|
||||
args: []string{"key-1", "key-2"},
|
||||
expectedError: "requires exactly 1 argument",
|
||||
expectedError: "requires 1 argument",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -34,13 +34,14 @@ func TestTrustKeyLoadErrors(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "not-enough-args",
|
||||
expectedError: "exactly 1 argument",
|
||||
expectedError: "1 argument",
|
||||
args: []string{},
|
||||
expectedOutput: "",
|
||||
},
|
||||
{
|
||||
name: "too-many-args",
|
||||
args: []string{"iamnotakey", "alsonotakey"},
|
||||
expectedError: "exactly 1 argument",
|
||||
expectedError: "1 argument",
|
||||
expectedOutput: "",
|
||||
},
|
||||
{
|
||||
|
||||
@ -24,12 +24,12 @@ func TestTrustRevokeCommandErrors(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "not-enough-args",
|
||||
expectedError: "requires exactly 1 argument",
|
||||
expectedError: "requires 1 argument",
|
||||
},
|
||||
{
|
||||
name: "too-many-args",
|
||||
args: []string{"remote1", "remote2"},
|
||||
expectedError: "requires exactly 1 argument",
|
||||
expectedError: "requires 1 argument",
|
||||
},
|
||||
{
|
||||
name: "sha-reference",
|
||||
|
||||
@ -32,12 +32,12 @@ func TestTrustSignCommandErrors(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "not-enough-args",
|
||||
expectedError: "requires exactly 1 argument",
|
||||
expectedError: "requires 1 argument",
|
||||
},
|
||||
{
|
||||
name: "too-many-args",
|
||||
args: []string{"image", "tag"},
|
||||
expectedError: "requires exactly 1 argument",
|
||||
expectedError: "requires 1 argument",
|
||||
},
|
||||
{
|
||||
name: "sha-reference",
|
||||
|
||||
Reference in New Issue
Block a user