process-conduit- Conduits for processes (deprecated)

Safe HaskellNone




Run process

Run shell command

sourceCmd :: MonadResource m => String -> Producer m ByteStringSource

Source of shell command

conduitCmd :: MonadResource m => String -> Conduit ByteString m ByteStringSource

Conduit of shell command

Convenience re-exports

shell :: String -> CreateProcess

Construct a CreateProcess record for passing to createProcess, representing a command to be passed to the shell.

proc :: FilePath -> [String] -> CreateProcess

Construct a CreateProcess record for passing to createProcess, representing a raw command with arguments.

The FilePath argument names the executable, and is interpreted according to the platform's standard policy for searching for executables. Specifically:

  • on Unix systems the execvp(3) semantics is used, where if the executable filename does not contain a slash (/) then the PATH environment variable is searched for the executable.
  • on Windows systems the Win32 CreateProcess semantics is used. Briefly: if the filename does not contain a path, then the directory containing the parent executable is searched, followed by the current directory, then some standard locations, and finally the current PATH. An .exe extension is added if the filename does not already have an extension. For full details see the documentation for the Windows SearchPath API.

data CreateProcess




cmdspec :: CmdSpec

Executable & arguments, or shell command

cwd :: Maybe FilePath

Optional path to the working directory for the new process

env :: Maybe [(String, String)]

Optional environment (otherwise inherit from the current process)

std_in :: StdStream

How to determine stdin

std_out :: StdStream

How to determine stdout

std_err :: StdStream

How to determine stderr

close_fds :: Bool

Close all file descriptors except stdin, stdout and stderr in the new process (on Windows, only works if std_in, std_out, and std_err are all Inherit)

create_group :: Bool

Create a new process group

delegate_ctlc :: Bool

Delegate control-C handling. Use this for interactive console processes to let them handle control-C themselves (see below for details).

On Windows this has no effect.


data CmdSpec


ShellCommand String

a command line to execute using the shell

RawCommand FilePath [String]

the filename of an executable with a list of arguments. see proc for the precise interpretation of the FilePath field.

data StdStream



Inherit Handle from parent

UseHandle Handle

Use the supplied Handle


Create a new pipe. The returned Handle will use the default encoding and newline translation mode (just like Handles created by openFile).