more general readProcess' merged from propellor
This commit is contained in:
parent
08f2c2cb0b
commit
0da402e0b9
1 changed files with 8 additions and 5 deletions
|
@ -13,6 +13,7 @@ module Utility.Process (
|
||||||
CreateProcess(..),
|
CreateProcess(..),
|
||||||
StdHandle(..),
|
StdHandle(..),
|
||||||
readProcess,
|
readProcess,
|
||||||
|
readProcess',
|
||||||
readProcessEnv,
|
readProcessEnv,
|
||||||
writeReadProcessEnv,
|
writeReadProcessEnv,
|
||||||
forceSuccessProcess,
|
forceSuccessProcess,
|
||||||
|
@ -66,17 +67,19 @@ readProcess :: FilePath -> [String] -> IO String
|
||||||
readProcess cmd args = readProcessEnv cmd args Nothing
|
readProcess cmd args = readProcessEnv cmd args Nothing
|
||||||
|
|
||||||
readProcessEnv :: FilePath -> [String] -> Maybe [(String, String)] -> IO String
|
readProcessEnv :: FilePath -> [String] -> Maybe [(String, String)] -> IO String
|
||||||
readProcessEnv cmd args environ =
|
readProcessEnv cmd args environ = readProcess' p
|
||||||
withHandle StdoutHandle createProcessSuccess p $ \h -> do
|
|
||||||
output <- hGetContentsStrict h
|
|
||||||
hClose h
|
|
||||||
return output
|
|
||||||
where
|
where
|
||||||
p = (proc cmd args)
|
p = (proc cmd args)
|
||||||
{ std_out = CreatePipe
|
{ std_out = CreatePipe
|
||||||
, env = environ
|
, env = environ
|
||||||
}
|
}
|
||||||
|
|
||||||
|
readProcess' :: CreateProcess -> IO String
|
||||||
|
readProcess' p = withHandle StdoutHandle createProcessSuccess p $ \h -> do
|
||||||
|
output <- hGetContentsStrict h
|
||||||
|
hClose h
|
||||||
|
return output
|
||||||
|
|
||||||
{- Runs an action to write to a process on its stdin,
|
{- Runs an action to write to a process on its stdin,
|
||||||
- returns its output, and also allows specifying the environment.
|
- returns its output, and also allows specifying the environment.
|
||||||
-}
|
-}
|
||||||
|
|
Loading…
Reference in a new issue