In is an input stream to read user input. It implements io.ReadCloser with additional utilities, such as putting the terminal in raw mode.
type In struct {
// contains filtered or unexported fields
}
func NewIn(in io.ReadCloser) *In
NewIn returns a new In from an io.ReadCloser.
func (i *In) CheckTty(attachStdin, ttyMode bool) error
CheckTty checks if we are trying to attach to a container TTY from a non-TTY client input stream, and if so, returns an error.
func (i *In) Close() error
Close implements the io.Closer interface.
func (s *In) FD() uintptr
FD returns the file descriptor number for this stream.
func (s *In) IsTerminal() bool
IsTerminal returns true if this stream is connected to a terminal.
func (i *In) Read(p []byte) (int, error)
Read implements the io.Reader interface.
func (s *In) RestoreTerminal()
RestoreTerminal restores normal mode to the terminal.
func (s *In) SetIsTerminal(isTerminal bool)
SetIsTerminal overrides whether a terminal is connected. It is used to override this property in unit-tests, and should not be depended on for other purposes.
func (i *In) SetRawTerminal() (err error)
SetRawTerminal sets raw mode on the input terminal. It is a no-op if In is not a TTY, or if the "NORAW" environment variable is set to a non-empty value.
Out is an output stream to write normal program output. It implements an io.Writer, with additional utilities for detecting whether a terminal is connected, getting the TTY size, and putting the terminal in raw mode.
type Out struct {
// contains filtered or unexported fields
}
func NewOut(out io.Writer) *Out
NewOut returns a new Out from an io.Writer.
func (s *Out) FD() uintptr
FD returns the file descriptor number for this stream.
func (o *Out) GetTtySize() (height uint, width uint)
GetTtySize returns the height and width in characters of the TTY, or zero for both if no TTY is connected.
func (s *Out) IsTerminal() bool
IsTerminal returns true if this stream is connected to a terminal.
func (s *Out) RestoreTerminal()
RestoreTerminal restores normal mode to the terminal.
func (s *Out) SetIsTerminal(isTerminal bool)
SetIsTerminal overrides whether a terminal is connected. It is used to override this property in unit-tests, and should not be depended on for other purposes.
func (o *Out) SetRawTerminal() (err error)
SetRawTerminal puts the output of the terminal connected to the stream into raw mode.
On UNIX, this does nothing. On Windows, it disables LF -> CRLF/ translation. It is a no-op if Out is not a TTY, or if the "NORAW" environment variable is set to a non-empty value.
func (o *Out) Write(p []byte) (int, error)