diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2018-01-04 08:53:46 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-01-04 21:05:10 +0000 |
commit | b231e3412e7d37d9680229e3782e28161792c7f8 (patch) | |
tree | da0d214d45bbb13b3254dfe450b73ddc24e44351 /cmd/podman/run.go | |
parent | 137e5c8ffd5e1d7abe47398d909c9611f19bfcbb (diff) | |
download | podman-b231e3412e7d37d9680229e3782e28161792c7f8.tar.gz podman-b231e3412e7d37d9680229e3782e28161792c7f8.tar.bz2 podman-b231e3412e7d37d9680229e3782e28161792c7f8.zip |
Fix handling of exit codes
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Closes: #183
Approved by: TomSweeneyRedHat
Diffstat (limited to 'cmd/podman/run.go')
-rw-r--r-- | cmd/podman/run.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cmd/podman/run.go b/cmd/podman/run.go index 654b7a47e..45a428f39 100644 --- a/cmd/podman/run.go +++ b/cmd/podman/run.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "strings" "sync" "github.com/pkg/errors" @@ -62,6 +63,11 @@ func runCmd(c *cli.Context) error { logrus.Debug("new container created ", ctr.ID()) if err := ctr.Init(); err != nil { + // This means the command did not exist + exitCode = 126 + if strings.Index(err.Error(), "permission denied") > -1 { + exitCode = 127 + } return err } logrus.Debugf("container storage created for %q", ctr.ID()) @@ -109,9 +115,15 @@ func runCmd(c *cli.Context) error { } if createConfig.Detach { fmt.Printf("%s\n", ctr.ID()) + exitCode = 0 return nil } wg.Wait() + if ecode, err := ctr.ExitCode(); err != nil { + logrus.Errorf("unable to get exit code of container %s: %q", ctr.ID(), err) + } else { + exitCode = int(ecode) + } if createConfig.Rm { return runtime.RemoveContainer(ctr, true) |