diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-10-07 21:19:38 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-10-10 00:23:01 +1100 |
commit | 79e59d5460d838203bc79ac86c0ba529305ba2a9 (patch) | |
tree | 7a7d6c48440f02945599606494ac64424d274f58 /pkg/utils | |
parent | ba4c3e5bc475a7819fd954985105073ba239bf9e (diff) |
add some safe goroutines
WIP
Diffstat (limited to 'pkg/utils')
-rw-r--r-- | pkg/utils/utils.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index c4d1dbe7e..4e179473f 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -14,6 +14,7 @@ import ( "time" "github.com/fatih/color" + "github.com/jesseduffield/termbox-go" ) // SplitLines takes a multiline string and splits it on newlines @@ -360,3 +361,18 @@ func ResolveTemplate(templateStr string, object interface{}) (string, error) { return buf.String(), nil } + +// Safe will close termbox if a panic occurs so that we don't end up in a malformed +// terminal state +func Safe(f func()) { + panicking := true + defer func() { + if panicking { + termbox.Close() + } + }() + + f() + + panicking = false +} |