class

Fluxion::Executor::SystemShellRunner

Inherits Fluxion::Executor::ShellRunner < Reference < Object

The real runner.

Constants

MAX_CAPTURE_HEAD = 256 * 1024

Output is captured for failure messages, but a runaway process must not be able to exhaust memory. The head and tail are what a human reads, so the middle is what gets dropped.

MAX_CAPTURE_TAIL = 256 * 1024
MAX_LINE_BYTES = 64 * 1024

A single line longer than this is almost certainly binary output or an attempt to flood the terminal.

TERMINATION_GRACE = 5.seconds

How long to wait after asking a process to stop before killing it.

TIMEOUT_EXIT_CODE = 124

Conventional exit code for "killed by a timeout", matching timeout(1).

TRUNCATED_LINE = "[output line truncated]"

Constructors

new(dry_run : Bool = false)
Source

Instance methods

dry_run?
Source
run(command : Command, &sink : String -> ) : ProcessResult

Runs command, yielding each output line as it arrives.

Source