From 34154620f6e698dcdddf0b88060dd5273bf3d2e2 Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Wed, 7 Oct 2020 00:15:35 -0400 Subject: [PATCH] Handle error handling better Don't panic Add function due to reuse Catch all errors to appease CI --- modules/cmdrunner/widget.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/cmdrunner/widget.go b/modules/cmdrunner/widget.go index 2d4050f3..77ea058a 100644 --- a/modules/cmdrunner/widget.go +++ b/modules/cmdrunner/widget.go @@ -125,24 +125,28 @@ func runCommandLoop(widget *Widget) { cmd := exec.Command(widget.settings.cmd, widget.settings.args...) cmd.Env = widget.environment() f, err := pty.Start(cmd) - if err != nil { - panic(err) - } - - io.Copy(widget.buffer, f) // The command has exited, print any error messages if err != nil { - widget.m.Lock() - _, writeErr := widget.buffer.WriteString(err.Error()) - if writeErr != nil { - return - } - widget.m.Unlock() + widget.handleError(err) + } + + _, err = io.Copy(widget.buffer, f) + if err != nil { + widget.handleError(err) } widget.redrawChan <- true } } +func (widget *Widget) handleError(err error) { + widget.m.Lock() + _, writeErr := widget.buffer.WriteString(err.Error()) + if writeErr != nil { + return + } + widget.m.Unlock() +} + func redrawLoop(widget *Widget) { for { widget.Redraw(widget.content)