diff options
Diffstat (limited to 'src/Utility')
| -rw-r--r-- | src/Utility/Process.hs | 16 | ||||
| -rw-r--r-- | src/Utility/SafeCommand.hs | 1 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/Utility/Process.hs b/src/Utility/Process.hs index cd3826d7..4550d94f 100644 --- a/src/Utility/Process.hs +++ b/src/Utility/Process.hs @@ -10,9 +10,10 @@ module Utility.Process ( module X, - CreateProcess, + CreateProcess(..), StdHandle(..), readProcess, + readProcess', readProcessEnv, writeReadProcessEnv, forceSuccessProcess, @@ -31,6 +32,7 @@ module Utility.Process ( stdinHandle, stdoutHandle, stderrHandle, + bothHandles, processHandle, devNull, ) where @@ -65,17 +67,19 @@ readProcess :: FilePath -> [String] -> IO String readProcess cmd args = readProcessEnv cmd args Nothing readProcessEnv :: FilePath -> [String] -> Maybe [(String, String)] -> IO String -readProcessEnv cmd args environ = - withHandle StdoutHandle createProcessSuccess p $ \h -> do - output <- hGetContentsStrict h - hClose h - return output +readProcessEnv cmd args environ = readProcess' p where p = (proc cmd args) { std_out = CreatePipe , 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, - returns its output, and also allows specifying the environment. -} diff --git a/src/Utility/SafeCommand.hs b/src/Utility/SafeCommand.hs index 04fcf390..86e60db0 100644 --- a/src/Utility/SafeCommand.hs +++ b/src/Utility/SafeCommand.hs @@ -9,7 +9,6 @@ module Utility.SafeCommand where import System.Exit import Utility.Process -import System.Process (env) import Data.String.Utils import Control.Applicative import System.FilePath |
