summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-03-24 18:03:01 +0100
committerGitHub <noreply@github.com>2020-03-24 18:03:01 +0100
commit14050c6941be7a03c126d0933abb84d90073446d (patch)
treedd435dcffeb841855132ae0ffb2074a6179571b1
parent0334c8d872a9ce97c294c9c192873f1f8d560271 (diff)
parent2d4fa996ef86d803442f96112ab9ee341d26215a (diff)
downloadpodman-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.go11
-rw-r--r--cmd/podmanV2/root.go12
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())
}