summaryrefslogtreecommitdiff
path: root/Utility/Process.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Process.hs')
-rw-r--r--Utility/Process.hs15
1 files changed, 11 insertions, 4 deletions
diff --git a/Utility/Process.hs b/Utility/Process.hs
index db24bf47e..613dd8b0f 100644
--- a/Utility/Process.hs
+++ b/Utility/Process.hs
@@ -64,17 +64,24 @@ readProcessEnv cmd args environ =
, env = environ
}
-{- Writes stdout to a process, returns its output, and also allows specifying
- - the environment. -}
+{- Writes a string to a process on its stdout,
+ - returns its output, and also allows specifying the environment.
+ -
+ -
+ -}
writeReadProcessEnv
:: FilePath
-> [String]
-> Maybe [(String, String)]
- -> String
+ -> String
+ -> (Maybe (Handle -> IO ()))
-> IO String
-writeReadProcessEnv cmd args environ input = do
+writeReadProcessEnv cmd args environ input adjusthandle = do
(Just inh, Just outh, _, pid) <- createProcess p
+ maybe (return ()) (\a -> a inh) adjusthandle
+ maybe (return ()) (\a -> a outh) adjusthandle
+
-- fork off a thread to start consuming the output
output <- hGetContents outh
outMVar <- newEmptyMVar