process_plus

Pub build status

Helpers for package:process. Including ForwardingProcessManager, PooledProcessManager, MockProcessManager, and CompletedProcess.

ForwardingProcessManager

A simple ProcessManager that delegates to another one. Typically used as a base class to extend functionality.

var manager = new ForwwardingProcessManager(const LocalProcessManager());

PooledProcessManager

A ProcessManager that uses a Pool to limit to the max amount of concurrently-running processes.

var manager = new PooledProcessManager(const LocalProcessManager(), Platform.numberOfProcessors);

MockProcessManager

A ProcessManager that can enqueue results in advance, rather than actually spawning OS processes.

var manager = new MockProcessManager();
manager.enqueue(new ProcessResult(0, 1337, stdout, stderr));

var p = await manager.run(['foo', '--bar=baz']);
await p.exitCode; // 1337

CompletedProcess

A Process implementation that simply outputs the result of a CompletedProcess.

var p = new CompletedProcess(new ProcessResult(0, 1337, stdout, stderr));
await p.exitCode; // 1337

Libraries

process_plus