class ProcessExecuter::Commands::Run

Run a command and return the {ProcessExecuter::Result}

Extends {ProcessExecuter::Commands::SpawnWithTimeout} to provide the core functionality for {ProcessExecuter.run}.

It accepts all [Process.spawn execution options](docs.ruby-lang.org/en/3.4/Process.html#module-Process-label-Execution+Options) plus the additional options ‘timeout_after`, `raise_errors` and `logger`.

This class wraps any stdout or stderr redirection destinations in a {MonitoredPipe}. This allows any class that implements ‘#write` to be used as an output redirection destination. This means that you can redirect to a StringIO which is not possible with `Process.spawn`.

The wrapper pipes are kept in an internal hash that is combined with the user’s options only when ‘Process.spawn` is called. The options object the caller gave is never modified, so it can be reused for another run and `result.options` returns the destinations as the user configured them.

@api private