diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2019-03-07 16:44:39 -0500 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2019-03-08 07:06:50 -0500 |
commit | 181f327d57ab84918572b69d2a039c43a8d7b871 (patch) | |
tree | 8684876407aa37f6cd4de1734289161c7c070517 /cmd/podman/common.go | |
parent | 94e89fc6cac0ac67db9228967f0340b60235bed8 (diff) | |
download | podman-181f327d57ab84918572b69d2a039c43a8d7b871.tar.gz podman-181f327d57ab84918572b69d2a039c43a8d7b871.tar.bz2 podman-181f327d57ab84918572b69d2a039c43a8d7b871.zip |
More cleanup for failures on missing commands.
Currently in podman if a user specifies a command that does not exist
the tool shows the help information. This patch changes it to show
information like:
$ ./bin/podman foobar
Error: unrecognized command 'podman foobar'
Try 'podman --help' for more information.
$ ./bin/podman volume foobar
Error: unrecognized command `podman volume foobar`
Try 'podman volume --help' for more information.
$ ./bin/podman container foobar
Error: unrecognized command `podman container foobar`
Try 'podman container --help' for more information.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'cmd/podman/common.go')
-rw-r--r-- | cmd/podman/common.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/cmd/podman/common.go b/cmd/podman/common.go index 9cd1998c8..1de0c7187 100644 --- a/cmd/podman/common.go +++ b/cmd/podman/common.go @@ -3,7 +3,6 @@ package main import ( "context" "fmt" - "github.com/spf13/cobra" "os" "strings" @@ -14,6 +13,7 @@ import ( "github.com/containers/storage" "github.com/fatih/camelcase" "github.com/pkg/errors" + "github.com/spf13/cobra" ) var ( @@ -67,6 +67,16 @@ func noSubArgs(c *cobra.Command, args []string) error { return nil } +func commandRunE() func(*cobra.Command, []string) error { + return func(cmd *cobra.Command, args []string) error { + if len(args) > 0 { + return errors.Errorf("unrecognized command `%s %s`\nTry '%s --help' for more information.", cmd.CommandPath(), args[0], cmd.CommandPath()) + } else { + return errors.Errorf("missing command '%s COMMAND'\nTry '%s --help' for more information.", cmd.CommandPath(), cmd.CommandPath()) + } + } +} + // getAllOrLatestContainers tries to return the correct list of containers // depending if --all, --latest or <container-id> is used. // It requires the Context (c) and the Runtime (runtime). As different @@ -537,7 +547,7 @@ Description: // This blocks the desplaying of the global options. The main podman // command should not use this. func UsageTemplate() string { - return `Usage:{{if .Runnable}} + return `Usage:{{if (and .Runnable (not .HasAvailableSubCommands))}} {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}} {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}} |