track cancel exit code from docker cli shellout to report correct status in metrics

Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
This commit is contained in:
Guillaume Tardif 2021-04-06 10:19:27 +02:00
parent d625f08a70
commit 6465bfec82
1 changed files with 7 additions and 2 deletions

View File

@ -66,11 +66,16 @@ func Exec(root *cobra.Command) {
err := RunDocker(childExit, os.Args[1:]...)
childExit <- true
if err != nil {
metrics.Track(store.DefaultContextType, os.Args[1:], metrics.FailureStatus)
if exiterr, ok := err.(*exec.ExitError); ok {
exitCode := exiterr.ExitCode()
if exitCode == 130 {
metrics.Track(store.DefaultContextType, os.Args[1:], metrics.CanceledStatus)
} else {
metrics.Track(store.DefaultContextType, os.Args[1:], metrics.FailureStatus)
}
os.Exit(exiterr.ExitCode())
}
metrics.Track(store.DefaultContextType, os.Args[1:], metrics.FailureStatus)
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}