Skip to content

Commit d2666a3

Browse files
Prevent from panicking in non-TTY environments
1 parent 32f5bce commit d2666a3

2 files changed

Lines changed: 32 additions & 26 deletions

File tree

cmd/receive.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cmd
22

33
import (
4+
"fmt"
5+
46
"github.com/claudiodangelis/qrcp/config"
57
"github.com/claudiodangelis/qrcp/logger"
68
"github.com/claudiodangelis/qrcp/qr"
@@ -45,20 +47,21 @@ func receiveCmdFunc(command *cobra.Command, args []string) error {
4547
if browserFlag {
4648
srv.DisplayQR(srv.ReceiveURL)
4749
}
48-
if err := keyboard.Open(); err != nil {
49-
panic(err)
50-
}
51-
defer func() {
52-
keyboard.Close()
53-
}()
54-
go func() {
55-
for {
56-
char, key, _ := keyboard.GetKey()
57-
if string(char) == "q" || key == keyboard.KeyCtrlC {
58-
srv.Shutdown()
50+
if err := keyboard.Open(); err == nil {
51+
defer func() {
52+
keyboard.Close()
53+
}()
54+
go func() {
55+
for {
56+
char, key, _ := keyboard.GetKey()
57+
if string(char) == "q" || key == keyboard.KeyCtrlC {
58+
srv.Shutdown()
59+
}
5960
}
60-
}
61-
}()
61+
}()
62+
} else {
63+
log.Print(fmt.Sprintf("Warning: keyboard not detected: %v", err))
64+
}
6265
if err := srv.Wait(); err != nil {
6366
return err
6467
}

cmd/send.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cmd
22

33
import (
4+
"fmt"
5+
46
"github.com/claudiodangelis/qrcp/config"
57
"github.com/claudiodangelis/qrcp/logger"
68
"github.com/claudiodangelis/qrcp/payload"
@@ -45,20 +47,21 @@ func sendCmdFunc(command *cobra.Command, args []string) error {
4547
if browserFlag {
4648
srv.DisplayQR(srv.SendURL)
4749
}
48-
if err := keyboard.Open(); err != nil {
49-
panic(err)
50-
}
51-
defer func() {
52-
keyboard.Close()
53-
}()
54-
go func() {
55-
for {
56-
char, key, _ := keyboard.GetKey()
57-
if string(char) == "q" || key == keyboard.KeyCtrlC {
58-
srv.Shutdown()
50+
if err := keyboard.Open(); err == nil {
51+
defer func() {
52+
keyboard.Close()
53+
}()
54+
go func() {
55+
for {
56+
char, key, _ := keyboard.GetKey()
57+
if string(char) == "q" || key == keyboard.KeyCtrlC {
58+
srv.Shutdown()
59+
}
5960
}
60-
}
61-
}()
61+
}()
62+
} else {
63+
log.Print(fmt.Sprintf("Warning: keyboard not detected: %v", err))
64+
}
6265
if err := srv.Wait(); err != nil {
6366
return err
6467
}

0 commit comments

Comments
 (0)