executable

package
v0.4.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultMemoryLimitInBytes int64 = 2 * 1024 * 1024 * 1024

DefaultMemoryLimitInBytes is the default memory limit (2GB)

Variables

View Source
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) Kill

func (e *Executable) Kill() error

Kill terminates the program

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

type ExecutableResult struct {
	Stdout   []byte
	Stderr   []byte
	ExitCode int
}

ExecutableResult holds the result of an executable run

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL