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 IConPty ¶
type IConPty interface {
IPty
// InputPipe returns the IConPty input pipe.
InputPipe() *os.File
// OutputPipe returns the IConPty output pipe.
OutputPipe() *os.File
}
IConPty is a Windows ConPTY interface.
type IPty ¶
type IPty 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
}
IPty is a pseudo-terminal interface.
type IUnixPty ¶
type IUnixPty interface {
IPty
// 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
}
IUnixPty is a Unix pseudo-terminal interface.
Click to show internal directories.
Click to hide internal directories.