From 7b90da7fb387f9b3945a3cb52e350268d74342ec Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Sat, 24 Oct 2020 19:14:33 +0000 Subject: [PATCH] shut down on ctrl+c --- main.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 57dd457..7c7cbfc 100644 --- a/main.go +++ b/main.go @@ -29,6 +29,7 @@ func newLog(path string) *blammo.Log { func main() { log := newLog("./belt.log") + start := time.Now() log.Info("starting at: %v", start) defer func() { @@ -42,13 +43,40 @@ func main() { exit.WithMessage(1, "unable to create a screen: %v", err) } log.Debug("sceen created") + if err := screen.Init(); err != nil { exit.WithMessage(1, "unable to initialize screen: %v", err) } log.Debug("screen initialized") - defer screen.Fini() + width, height := screen.Size() + log.Debug("screen width: %d", width) + log.Debug("screen height: %d", height) + log.Debug("screen colors: %v", screen.Colors()) + log.Debug("screen has mouse: %v", screen.HasMouse()) + + defer func() { + log.Debug("finalizing screen") + screen.Fini() + }() log.Debug("clearing screen") + for { + e := screen.PollEvent() + if e == nil { + break + } + switch v := e.(type) { + case *tcell.EventKey: + log.Debug("screen saw key event: %v", v.Key()) + key := v.Key() + if key == tcell.KeyCtrlC { + return + } + default: + log.Debug("screen saw unhandled event of type %T", e) + } + } screen.Clear() + time.Sleep(1 * time.Second) }