diff options
Diffstat (limited to 'src/tui')
| -rw-r--r-- | src/tui/ttyname_unix.go | 16 | ||||
| -rw-r--r-- | src/tui/ttyname_windows.go | 7 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/tui/ttyname_unix.go b/src/tui/ttyname_unix.go index 69bdfa54..68298cdc 100644 --- a/src/tui/ttyname_unix.go +++ b/src/tui/ttyname_unix.go @@ -4,6 +4,7 @@ package tui import ( "io/ioutil" + "os" "syscall" ) @@ -29,3 +30,18 @@ func ttyname() string { } return "" } + +// TtyIn returns terminal device to be used as STDIN, falls back to os.Stdin +func TtyIn() *os.File { + in, err := os.OpenFile(consoleDevice, syscall.O_RDONLY, 0) + if err != nil { + tty := ttyname() + if len(tty) > 0 { + if in, err := os.OpenFile(tty, syscall.O_RDONLY, 0); err == nil { + return in + } + } + return os.Stdin + } + return in +} diff --git a/src/tui/ttyname_windows.go b/src/tui/ttyname_windows.go index 5354b747..8db490ad 100644 --- a/src/tui/ttyname_windows.go +++ b/src/tui/ttyname_windows.go @@ -2,6 +2,13 @@ package tui +import "os" + func ttyname() string { return "" } + +// TtyIn on Windows returns os.Stdin +func TtyIn() *os.File { + return os.Stdin +} |
