fay-0.12.0.0: src/System/Process/Extra.hs
-- | Extra process functions.
module System.Process.Extra where
import System.Exit
import System.Process
-- | Read everything from a process, either failure or both stderr and stdout.
readAllFromProcess :: FilePath -> [String] -> String -> IO (Either String (String,String))
readAllFromProcess program flags input = do
(code,out,err) <- readProcessWithExitCode program flags input
return $ case code of
ExitFailure 127 -> Left ("cannot find executable " ++ program)
ExitFailure _ -> Left err
ExitSuccess -> Right (err, out)