summaryrefslogtreecommitdiff
path: root/src/Utility
diff options
context:
space:
mode:
authorJoey Hess2014-11-20 00:58:51 -0400
committerJoey Hess2014-11-20 00:58:51 -0400
commit02b8b2dec7c767ba3b7154e424b9c11e6a8d544f (patch)
tree84f8394029d0b17de94a47ea59dd29b70d5bab38 /src/Utility
parentf1b2df601e0eb2fdd5dbc3bc72df0f0493230046 (diff)
parent0d4dd37ee769a6ef1bc80507c8ee8a4b9e882856 (diff)
Merge branch 'joeyconfig'
Diffstat (limited to 'src/Utility')
-rw-r--r--src/Utility/Process.hs16
-rw-r--r--src/Utility/SafeCommand.hs1
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