Catch errors when reading keyboard input

This commit is contained in:
Christian Rocha
2020-04-22 10:32:18 -04:00
parent 50b16d2df1
commit aa6d766e42

9
tea.go
View File

@@ -149,6 +149,7 @@ func (p *Program) Start() error {
subs = make(subManager)
cmds = make(chan Cmd)
msgs = make(chan Msg)
errs = make(chan error)
done = make(chan struct{})
linesRendered int
)
@@ -175,7 +176,10 @@ func (p *Program) Start() error {
// need that we're enabling it by default.
go func() {
for {
msg, _ := ReadKey(os.Stdin)
msg, err := ReadKey(os.Stdin)
if err != nil {
errs <- err
}
msgs <- KeyMsg(msg)
}
}()
@@ -202,6 +206,9 @@ func (p *Program) Start() error {
// Handle updates and draw
for {
select {
case err := <-errs:
close(done)
return err
case msg := <-msgs:
// Handle quit message