check / check (push) Waiting to run
term.ReadPassword reads the terminal with a raw read that returns 0 bytes at the end of input and takes that as nothing yet, so Ctrl-D at the prompt did nothing. The prompt now sets the terminal as ReadPassword does and reads the line from standard input, which reports the end of input. Ctrl-D with nothing typed gives an empty mnemonic, refused with status 1, and the terminal settings are put back. A test runs the tool on a pseudo-terminal (github.com/creack/pty, at a commit past v1.1.24, whose Open on Linux can return another pty's terminal) and types Ctrl-D at the prompt. Model: opus-5-5
11 lines
219 B
Go
11 lines
219 B
Go
package mnemonic
|
|
|
|
import "golang.org/x/sys/unix"
|
|
|
|
// The requests that read and set the terminal settings, as
|
|
// golang.org/x/term names them.
|
|
const (
|
|
ioctlReadTermios = unix.TCGETS
|
|
ioctlWriteTermios = unix.TCSETS
|
|
)
|