summaryrefslogtreecommitdiffstats
path: root/pkg/utils
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-10-07 21:19:38 +1100
committerJesse Duffield <jessedduffield@gmail.com>2020-10-10 00:23:01 +1100
commit79e59d5460d838203bc79ac86c0ba529305ba2a9 (patch)
tree7a7d6c48440f02945599606494ac64424d274f58 /pkg/utils
parentba4c3e5bc475a7819fd954985105073ba239bf9e (diff)
add some safe goroutines
WIP
Diffstat (limited to 'pkg/utils')
-rw-r--r--pkg/utils/utils.go16
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
+}