Skip to content

Commit e638163

Browse files
committed
fixed terminal support when RawMode is not supported
1 parent f09f062 commit e638163

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

internal/confirm.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package internal
22

33
import (
4+
"bufio"
45
"fmt"
56
"io"
67
"os"
@@ -52,13 +53,19 @@ func FConfirmPromptDefaultYes(action string, stdin io.Reader, stdout io.Writer)
5253
_, _ = fmt.Fprintln(stdout)
5354
}()
5455

55-
_, _ = fmt.Fprintf(stdout, "\nPress ENTER to %s or q to quit ", action)
56+
var msgFormat string
5657

5758
in, clean, err := NewRawTerminalReader(stdin)
59+
defer clean()
5860
if err != nil {
59-
logrus.WithError(err).Fatal("Can't read char from terminal")
61+
logrus.WithError(err).Warn("Can't read char from terminal")
62+
msgFormat = "\nPress ENTER to %s or q and ENTER to quit "
63+
in = bufio.NewReader(stdin)
64+
} else {
65+
msgFormat = "\nPress ENTER to %s or q to quit "
6066
}
61-
defer clean()
67+
68+
_, _ = fmt.Fprintf(stdout, msgFormat, action)
6269

6370
for {
6471
char, _, err := in.ReadRune()
@@ -71,7 +78,7 @@ func FConfirmPromptDefaultYes(action string, stdin io.Reader, stdout io.Writer)
7178

7279
if input == "n" || input == "no" || input == "q" || input == endOfTextChar {
7380
return false
74-
} else if input == "\r" || input == "\n" {
81+
} else if input == "\r" || input == "\n" || input == "" {
7582
return true
7683
} else {
7784
continue

internal/terminal.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func NewRawTerminalReader(stdin io.Reader) (*bufio.Reader, func(), error) {
2121

2222
state, err := terminal.MakeRaw(stdinFileDescriptor)
2323
if err != nil {
24-
return nil, nil, errors.Wrap(err, "can't set stdin to raw")
24+
return nil, func() {}, errors.Wrap(err, "can't set stdin to raw")
2525
}
2626

2727
return bufio.NewReader(stdin), func() {

0 commit comments

Comments
 (0)