Documentation
¶
Index ¶
- Constants
- Variables
- type Executable
- func (e *Executable) Clone() *Executable
- func (e *Executable) HasExited() bool
- func (e *Executable) Kill() error
- func (e *Executable) Run(args ...string) (ExecutableResult, error)
- func (e *Executable) RunWithStdin(stdin []byte, args ...string) (ExecutableResult, error)
- func (e *Executable) Start(args ...string) error
- func (e *Executable) Wait() (ExecutableResult, error)
- type ExecutableResult
Constants ¶
const DefaultMemoryLimitInBytes int64 = 2 * 1024 * 1024 * 1024
DefaultMemoryLimitInBytes is the default memory limit (2GB)
Variables ¶
var ErrMemoryLimitExceeded = errors.New("process exceeded memory limit")
ErrMemoryLimitExceeded is returned when a process exceeds its memory limit
Functions ¶
This section is empty.
Types ¶
type Executable ¶
type Executable struct {
// Path is the path to the executable.
Path string
// TimeoutInMilliseconds is the maximum time the process can run.
TimeoutInMilliseconds int
// MemoryLimitInBytes sets the maximum memory the process can use (Linux only).
// If exceeded, the process will be killed and an error will be returned.
// Defaults to 2GB. Set to 0 to disable memory limiting.
MemoryLimitInBytes int64
// ShouldUsePty controls whether the executable's standard streams should be set to PTY instead of pipes.
ShouldUsePty bool
// WorkingDir can be set before calling Start or Run to customize the working directory of the executable.
WorkingDir string
// Process is the os.Process object for the executable.
// TODO: See if this actually needs to be exported?
Process *os.Process
// contains filtered or unexported fields
}
Executable represents a program that can be executed
func NewExecutable ¶
func NewExecutable(path string) *Executable
NewExecutable returns an Executable
func NewVerboseExecutable ¶
func NewVerboseExecutable(path string, loggerFunc func(string)) *Executable
NewVerboseExecutable returns an Executable struct with a logger configured
func (*Executable) Clone ¶ added in v0.2.12
func (e *Executable) Clone() *Executable
func (*Executable) HasExited ¶
func (e *Executable) HasExited() bool
func (*Executable) Run ¶
func (e *Executable) Run(args ...string) (ExecutableResult, error)
Run starts the specified command, waits for it to complete and returns the result.
func (*Executable) RunWithStdin ¶
func (e *Executable) RunWithStdin(stdin []byte, args ...string) (ExecutableResult, error)
RunWithStdin starts the specified command, sends input, waits for it to complete and returns the result.
func (*Executable) Start ¶
func (e *Executable) Start(args ...string) error
Start starts the specified command but does not wait for it to complete.
func (*Executable) Wait ¶
func (e *Executable) Wait() (ExecutableResult, error)
Wait waits for the program to finish and returns the result.
type ExecutableResult ¶
ExecutableResult holds the result of an executable run