Streaming support for running system process.
Stream data in and out of external commands. Configuration options are available to choose which inputs and outputs to use.
streaming-process
Run a process, streaming data in or out.
A lot of configuration options are available to fine-tune which inputs and outputs are streamed.
This uses streaming-with to handle resource management, and streaming-concurrency for handling both stdout
and stderr
together.
As such, code is typically run in a continuation-passing-style. You may wish to use the Streaming.Process.Lifted
module if you have many of these nested.
Exceptions
The functions in this library will all throw ProcessExitedUnsuccessfully
if the process/command itself fails.
WARNING
If using this module, you will need to have:
ghc-options -threaded
in the executable section of your .cabal
file, otherwise your code will likely hang!