diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-03-24 18:03:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-24 18:03:01 +0100 |
commit | 14050c6941be7a03c126d0933abb84d90073446d (patch) | |
tree | dd435dcffeb841855132ae0ffb2074a6179571b1 | |
parent | 0334c8d872a9ce97c294c9c192873f1f8d560271 (diff) | |
parent | 2d4fa996ef86d803442f96112ab9ee341d26215a (diff) | |
download | podman-14050c6941be7a03c126d0933abb84d90073446d.tar.gz podman-14050c6941be7a03c126d0933abb84d90073446d.tar.bz2 podman-14050c6941be7a03c126d0933abb84d90073446d.zip |
Merge pull request #5591 from baude/v2exitcode
podmanv2 exit code
-rw-r--r-- | cmd/podmanV2/registry/registry.go | 11 | ||||
-rw-r--r-- | cmd/podmanV2/root.go | 12 |
2 files changed, 21 insertions, 2 deletions
diff --git a/cmd/podmanV2/registry/registry.go b/cmd/podmanV2/registry/registry.go index 793d520a8..b0c11ba04 100644 --- a/cmd/podmanV2/registry/registry.go +++ b/cmd/podmanV2/registry/registry.go @@ -1,6 +1,7 @@ package registry import ( + "github.com/containers/libpod/libpod/define" "github.com/containers/libpod/pkg/domain/entities" "github.com/containers/libpod/pkg/domain/infra" "github.com/pkg/errors" @@ -21,8 +22,18 @@ var ( EngineOpts entities.EngineOptions GlobalFlags entities.EngineFlags + + ExitCode = define.ExecErrorCodeGeneric ) +func SetExitCode(code int) { + ExitCode = code +} + +func GetExitCode() int { + return ExitCode +} + // HelpTemplate returns the help template for podman commands // This uses the short and long options. // command should not use this. diff --git a/cmd/podmanV2/root.go b/cmd/podmanV2/root.go index b0dd7643f..2becd126d 100644 --- a/cmd/podmanV2/root.go +++ b/cmd/podmanV2/root.go @@ -6,6 +6,7 @@ import ( "path" "github.com/containers/libpod/cmd/podmanV2/registry" + "github.com/containers/libpod/libpod/define" "github.com/containers/libpod/version" "github.com/spf13/cobra" ) @@ -31,7 +32,14 @@ func init() { func Execute() { if err := rootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) + fmt.Fprintln(os.Stderr, "Error:", err.Error()) + } else if registry.GetExitCode() == define.ExecErrorCodeGeneric { + // The exitCode modified from define.ExecErrorCodeGeneric, + // indicates an application + // running inside of a container failed, as opposed to the + // podman command failed. Must exit with that exit code + // otherwise command exited correctly. + registry.SetExitCode(0) } + os.Exit(registry.GetExitCode()) } |