process_runnerincludeParentEnvironment to process manager (fixes #36)run method in ProcessRunner into smaller, more manageable private methods.FakeProcessManager to differentiate commands based on their working directory and the runInShell parameter, and adding more comprehensive tests for it.ProcessPool idempotent (do nothing if the dependency already exists).stdin handling, runInShell behavior, and exception scenarios.FakeProcessManager to the main package so developers can use it for testing. Not exported from the main package import.WorkerJobGroup for running a group of dependent tasks in order.process.file.ProcessRunnerException if a job fails and failOk on that job is false.args package for the example, now that args is null safe.WorkerJob.result to be non-nullable, and initialized with an empty result.<2.12.0.<2.11.0.exception to the WorkerJob so that when commands fail to run, the exception output can be seen.result given in the ProcessRunnerException to be a ProcessRunnerResult instead of a ProcessResult, which can't include the interleaved stdout/stderr output for failed commands.ProcessPool to set the result correctly on failed jobs.WorkerJob.failOk so that failure message of failed worker jobs is suppressed by default, but can be turned on.printOutputDefault to the ProcessRunner constructor, and updated docs.Breaking change to modify the stderr, stdout, and output members of ProcessRunnerResult so that they return pre-decoded Strings instead of List<int>s. Added stderrRaw, stdoutRaw, and outputRaw members that return the original List<int> values. Decoded strings are decoded by a new decoder optional argument which uses SystemEncoder by default.
Breaking change to modify the stdin member of WorkerJob so that it is a Stream<String> instead of Stream<List<int>>, and a new stdinRaw method that is a Stream<List<int>>. Added an encoder attribute to ProcessRunner that provides the encoding for the stdin stream, as well as the default decoding for results.
Added ProcessPool.runToCompletion convenience function to provide a simple interface that just delivers the final results, without dealing with streams.
Added more tests.