Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidCommand is returned when the command is invalid. ErrInvalidCommand = errors.New("pty: invalid command") // ErrUnsupported is returned when the platform is unsupported. ErrUnsupported = errors.New("pty: unsupported platform") )
Functions ¶
func ApplyTerminalModes ¶
ApplyTerminalModes applies the given ssh terminal modes to the given file descriptor.
Types ¶
type Cmd ¶
type Cmd struct { // Path is the path of the command to run. Path string // Args holds command line arguments, including the command as Args[0]. Args []string // Env specifies the environment of the process. // If Env is nil, the new process uses the current process's environment. Env []string // Dir specifies the working directory of the command. // If Dir is the empty string, the current directory is used. Dir string // SysProcAttr holds optional, operating system-specific attributes. SysProcAttr *syscall.SysProcAttr // Process is the underlying process, once started. Process *os.Process // ProcessState contains information about an exited process. // If the process was started successfully, Wait or Run will populate this // field when the command completes. ProcessState *os.ProcessState // Cancel is called when the command is canceled. Cancel func() error // contains filtered or unexported fields }
Cmd is a command that can be started attached to a pseudo-terminal. This is similar to the API of exec.Cmd. The main difference is that the command is started attached to a pseudo-terminal. This is required as we cannot use exec.Cmd directly on Windows due to limitation of starting a process attached to a pseudo-terminal. See: https://github.com/golang/go/issues/62708
type ConPty ¶ added in v0.2.0
type ConPty interface { Pty // InputPipe returns the ConPty input pipe. InputPipe() *os.File // OutputPipe returns the ConPty output pipe. OutputPipe() *os.File }
ConPty is a Windows ConPTY interface.
type Pty ¶
type Pty interface { io.ReadWriteCloser // Name returns the name of the pseudo-terminal. // On Windows, this will always be "windows-pty". // On Unix, this will return the name of the slave end of the // pseudo-terminal TTY. Name() string // Command returns a command that can be used to start a process // attached to the pseudo-terminal. Command(name string, args ...string) *Cmd // CommandContext returns a command that can be used to start a process // attached to the pseudo-terminal. CommandContext(ctx context.Context, name string, args ...string) *Cmd // Resize resizes the pseudo-terminal. Resize(width int, height int) error // Fd returns the file descriptor of the pseudo-terminal. // On Unix, this will return the file descriptor of the master end. // On Windows, this will return the handle of the console. Fd() uintptr }
Pty is a pseudo-terminal interface.
type UnixPty ¶
type UnixPty interface { Pty // Master returns the pseudo-terminal master end (pty). Master() *os.File // Slave returns the pseudo-terminal slave end (tty). Slave() *os.File // Control calls f on the pseudo-terminal master end (pty). Control(f func(fd uintptr)) error // SetWinsize sets the pseudo-terminal window size. SetWinsize(ws *Winsize) error }
UnixPty is a Unix pseudo-terminal interface.
Click to show internal directories.
Click to hide internal directories.