process-extras-0.7.2: Process extras

Safe HaskellNone
LanguageHaskell2010

System.Process.Run

Contents

Description

Flexible control of progress reporting for readCreateProcess and friends.

Synopsis

Monad transformer

type RunT text m = StateT (RunState text) m #

runT :: forall m text char a. (MonadIO m, ProcessText text char) => RunT text m a -> m a #

data RunState text #

This is the state record that controls the output style.

Constructors

RunState 

Fields

Instances

ProcessText text char => Default (RunState text) # 

Methods

def :: RunState text #

data OutputStyle #

Constructors

Dots Int

Output one dot per n output characters

All

send process stdout to console stdout and process stderr to console stderr

Indented

Output with prefixes

Silent

No output

Monad class

class (MonadState (RunState text) m, ProcessText text char, ListLikeProcessIO text char, MonadIO m, IsString text, Eq char, Dot char) => RunM text char m #

Modify moand RunM state parameters

echoStart :: MonadState (RunState t) m => m () #

echoEnd :: MonadState (RunState t) m => m () #

output :: MonadState (RunState t) m => m () #

silent :: MonadState (RunState t) m => m () #

dots :: MonadState (RunState t) m => Int -> m () #

indent :: (MonadState (RunState t) m, ListLike t char) => (t -> t) -> (t -> t) -> m () #

Modify the indentation prefixes for stdout and stderr in the progress monad.

vlevel :: forall m text char. (IsString text, ListLike text char, MonadIO m, MonadState (RunState text) m) => Int -> m () #

Set verbosity to a specific level from 0 to 3. vlevel :: (MonadIO m, Monoid text, MonadState (RunState text) m) => Int -> m () vlevel :: forall m text char. (IsString text, ListLike text char, MonadIO m) => Int -> m ()

quieter :: RunM text char m => m () #

noisier :: RunM text char m => m () #

lazy :: RunM text char m => m () #

strict :: RunM text char m => m () #

message :: RunM text char m => (text -> text) -> m () #

Monadic process runner

run :: forall m maker text char result. (RunM text char m, ProcessMaker maker, ProcessResult text result) => maker -> text -> m result #

Re-exports