From 59f6cda4d6ffbfa06f9dbc535dabda6558823319 Mon Sep 17 00:00:00 2001 From: sqshq Date: Thu, 21 Mar 2019 23:21:00 -0400 Subject: [PATCH] error handling enhancements --- data/error.go | 18 ++++++++++++------ data/sampler.go | 3 +-- data/trigger.go | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/data/error.go b/data/error.go index 7741260..4d46a8e 100644 --- a/data/error.go +++ b/data/error.go @@ -5,11 +5,17 @@ import ( "os/exec" ) -func getErrorMessage(err *exec.ExitError) string { - stderr := string(err.Stderr) - if len(stderr) == 0 { - return err.Error() - } else { - return fmt.Sprintf("%.200s", stderr) +func getErrorMessage(err error) string { + + exitErr, ok := err.(*exec.ExitError) + message := err.Error() + + if ok { + stderr := string(exitErr.Stderr) + if len(stderr) != 0 { + message = fmt.Sprintf("%.200s", stderr) + } } + + return message } diff --git a/data/sampler.go b/data/sampler.go index cc35ba4..e9bb560 100644 --- a/data/sampler.go +++ b/data/sampler.go @@ -2,7 +2,6 @@ package data import ( "github.com/sqshq/sampler/config" - "os/exec" "time" ) @@ -57,7 +56,7 @@ func (s *Sampler) sample(item Item, options config.Options) { } else { s.consumer.AlertChannel <- &Alert{ Title: "SAMPLING FAILURE", - Text: getErrorMessage(err.(*exec.ExitError)), + Text: getErrorMessage(err), Color: item.Color, } } diff --git a/data/trigger.go b/data/trigger.go index 4972a8c..f07e9de 100644 --- a/data/trigger.go +++ b/data/trigger.go @@ -107,7 +107,7 @@ func (t *Trigger) evaluate(sample *Sample) bool { if err != nil { t.consumer.AlertChannel <- &Alert{ Title: "TRIGGER CONDITION FAILURE", - Text: getErrorMessage(err.(*exec.ExitError)), + Text: getErrorMessage(err), } }