process-extras-0.7.4: Process extras

Safe HaskellNone





class ProcessMaker a where Source #

Minimal complete definition

process, showProcessMakerForUser


ProcessMaker CreateProcess Source #

This is the usual maker argument to readCreateProcessLazy.

ProcessMaker (CreateProcess, BufferMode, BufferMode) Source #

Passing this to readCreateProcessLazy as the maker argument allows you to set the buffer mode of the process stdout and stderr handles just after the handles are created. These are set to BlockBuffering by default, but for running console commands LineBuffering is probably what you want.

class ListLikeIO text char => ListLikeProcessIO text char where Source #

Process IO is based on the ListLikeIO class from the ListLike package

Minimal complete definition

forceOutput, readChunks


forceOutput :: text -> IO text Source #

readChunks :: Handle -> IO [text] Source #

Read from a handle, returning a lazy list of the monoid a.

class (IsString text, Monoid text, ListLike text char) => ProcessText text char Source #

class Monoid result => ProcessResult text result | result -> text where Source #

Minimal complete definition

pidf, outf, errf, intf, codef


pidf :: ProcessHandle -> result Source #

outf :: text -> result Source #

errf :: text -> result Source #

intf :: SomeException -> result Source #

codef :: ExitCode -> result Source #


ListLikeProcessIO a c => ProcessResult a [Chunk a] Source # 


pidf :: ProcessHandle -> [Chunk a] Source #

outf :: a -> [Chunk a] Source #

errf :: a -> [Chunk a] Source #

intf :: SomeException -> [Chunk a] Source #

codef :: ExitCode -> [Chunk a] Source #

ListLikeProcessIO a c => ProcessResult a (ExitCode, [Chunk a]) Source # 
ListLikeProcessIO text char => ProcessResult text (ExitCode, text, text) Source # 


pidf :: ProcessHandle -> (ExitCode, text, text) Source #

outf :: text -> (ExitCode, text, text) Source #

errf :: text -> (ExitCode, text, text) Source #

intf :: SomeException -> (ExitCode, text, text) Source #

codef :: ExitCode -> (ExitCode, text, text) Source #

readProcessWithExitCode Source #


:: ListLikeProcessIO text char 
=> FilePath

command to run

-> [String]

any arguments

-> text

standard input

-> IO (ExitCode, text, text)

exitcode, stdout, stderr

Like readProcessWithExitCode, but with generalized input and output type. Aside from the usual text-like types, the output can be a list of Chunk a. This lets you process the chunks received from stdout and stderr lazil, in the order they are received, as well as the exit code. Utilities to handle Chunks are provided in System.Process.ListLike.

readCreateProcessWithExitCode Source #


:: (ProcessMaker maker, ListLikeProcessIO text char) 
=> maker

command and arguments to run

-> text

standard input

-> IO (ExitCode, text, text)

exitcode, stdout, stderr

readCreateProcessStrict :: (ProcessMaker maker, ProcessResult text result, ListLikeProcessIO text char) => maker -> text -> IO result Source #

readCreateProcessLazy :: (ProcessMaker maker, ProcessResult a b, ListLikeProcessIO a c) => maker -> a -> IO b Source #

Like readCreateProcessStrict, but the output is read lazily.

showCreateProcessForUser :: CreateProcess -> String Source #

System.Process utility functions.

Orphan instances

Monoid ExitCode Source #

A process usually has one ExitCode at the end of its output, this Monoid instance lets us build the type returned by readProcessWithExitCode.