-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Process piping library -- -- A library with operations for piping data through a pipeline of -- processes. @package Pipe @version 2.0 -- | Operations for piping data through multiple processes. -- -- pipe is the most general function, with 'pipe\'' and -- pipeString provided for convenience purposes. -- -- handlePipe, filePipe, and 'filePipe\'' are for the -- common file-to-file case and behave somewhat differently. -- -- Whenever specifying a path to a process, explicitly specifying the -- current directory is recommended for portability. That is: use "./foo" -- instead of "foo", for instance. -- -- On Windows, appending ".exe" to process paths is attempted if the -- invocation fails. module System.Process.Pipe -- | Pipes the input, using the given writer and reader functions, through -- all the commands named, in the given working directory. Returns the -- result. -- -- An exception is thrown if the list of programs is empty. -- -- The writer function is called in a 'forkIO'\'d thread, allowing this -- to be lazy. pipe :: (Handle -> a -> IO ()) -> (Handle -> IO b) -> FilePath -> [(FilePath, [String])] -> a -> IO b -- | A convenience function for when you don't care about the working -- directory, 'pipe\'' uses .. pipe' :: (Handle -> a -> IO ()) -> (Handle -> IO b) -> [(FilePath, [String])] -> a -> IO b -- | A convenience function for the common case of piping from a -- String to a String. pipeString :: [(FilePath, [String])] -> String -> IO String -- | A function for the common case of piping from a Handle to a -- Handle. -- -- Note that this is not a convenient frontend for pipe and is -- fundamentally different in the following ways: -- --