diff options
Diffstat (limited to 'src/mongo/gotools/vendor/src/github.com/howeyc/gopass/nix.go')
-rw-r--r-- | src/mongo/gotools/vendor/src/github.com/howeyc/gopass/nix.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/mongo/gotools/vendor/src/github.com/howeyc/gopass/nix.go b/src/mongo/gotools/vendor/src/github.com/howeyc/gopass/nix.go new file mode 100644 index 00000000000..76c9da42093 --- /dev/null +++ b/src/mongo/gotools/vendor/src/github.com/howeyc/gopass/nix.go @@ -0,0 +1,29 @@ +// +build linux darwin freebsd netbsd openbsd + +package gopass + +import ( + "io" + "syscall" + + "golang.org/x/crypto/ssh/terminal" +) + +const lineEnding = "\n" + +func getch() (byte, error) { + if oldState, err := terminal.MakeRaw(0); err != nil { + return 0, err + } else { + defer terminal.Restore(0, oldState) + } + + var buf [1]byte + if n, err := syscall.Read(0, buf[:]); n == 0 || err != nil { + if err != nil { + return 0, err + } + return 0, io.EOF + } + return buf[0], nil +} |