pty
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Index¶
Constants¶
This section is empty.
Variables¶
var ErrClosed =xerrors.New("pty: closed")
ErrClosed is returned when a PTY is used after it has been closed.
Functions¶
Types¶
typeCmd¶added inv0.23.1
Cmd is a drop-in replacement for exec.Cmd with most of the same API, butit exposes the context.Context to our PTY code so that we can still kill theprocess when the Context expires. This is required because on Windows, we don'tstart the command using the `exec` library, so we have to manage the contextourselves.
funcCommandContext¶added inv0.23.1
typeOption¶added inv0.8.15
type Option func(*ptyOptions)
Options represents a an option for a PTY.
funcWithGPGTTY¶added inv0.14.0
func WithGPGTTY()Option
WithGPGTTY sets the GPG_TTY environment variable to the PTY name. This onlyapplies to non-Windows platforms.
funcWithLogger¶added inv0.8.15
WithLogger sets a logger for logging errors.
funcWithSSHRequest¶added inv0.8.15
WithSSHRequest applies the ssh.Pty request to the PTY.
Only partially supported on Windows (e.g. window size).
typePTY¶
type PTY interface {io.Closer// Resize sets the size of the PTY.Resize(heightuint16, widthuint16)error// Name of the TTY. Example on Linux would be "/dev/pts/1".Name()string// Output handles TTY output.//// cmd.SetOutput(pty.Output()) would be used to specify a command// uses the output stream for writing.//// The same stream could be read to validate output.Output()ReadWriter// Input handles TTY input.//// cmd.SetInput(pty.Input()) would be used to specify a command// uses the PTY input for reading.//// The same stream would be used to provide user input: pty.Input().Write(...)Input()ReadWriter}
PTY is a minimal interface for interacting with pseudo-TTY where thisprocess retains access to _both_ ends of the pseudo-TTY (i.e. `ptm` & `pts`on Linux).
typePTYCmd¶added inv0.23.0
type PTYCmd interface {io.Closer// Resize sets the size of the PTY.Resize(heightuint16, widthuint16)error// OutputReader returns an io.Reader for reading the output from the process// controlled by the pseudo-TTYOutputReader()io.Reader// InputWriter returns an io.Writer for writing into to the process// controlled by the pseudo-TTYInputWriter()io.Writer}
PTYCmd is an interface for interacting with a pseudo-TTY where we controlonly one end, and the other end has been passed to a running os.Process.nolint:revive
typeProcess¶added inv0.8.2
type Process interface {// Wait for the command to complete. Returned error is as for exec.Cmd.Wait()Wait()error// Kill the command process. Returned error is as for os.Process.Kill()Kill()error}
Process represents a process running in a PTY. We need to trigger special processing on the PTYon process completion, meaning that we will have goroutines calling Wait() on the process. Sincethe caller will also typically wait for the process, and it is not safe for multiple goroutinesto Wait() on a process, this abstraction provides a goroutine-safe interface for interacting withthe process.
typeReadWriter¶added inv0.6.0
ReadWriter is an implementation of io.ReadWriter that wraps two separateunderlying file descriptors, one for reading and one for writing, and allowsthem to be accessed separately.
typeStartOption¶added inv0.8.15
type StartOption func(*startOptions)
StartOption represents a configuration option passed to Start.
funcWithPTYOption¶added inv0.8.15
func WithPTYOption(opts ...Option)StartOption
WithPTYOption applies the given options to the underlying PTY.