summaryrefslogtreecommitdiff
path: root/src/Utility/Process.hs
diff options
context:
space:
mode:
authorJoey Hess2016-03-06 20:54:22 -0400
committerJoey Hess2016-03-06 20:54:22 -0400
commit6cb5e3bbf5bf05637d71695ebc001be103526782 (patch)
tree09324a71087268d915948f59208770d308927b6f /src/Utility/Process.hs
parent4d09233efd8ad7a238f8002d1aa4cfe3a37013e6 (diff)
parentcef0ee73bb57980bb084025971734cb158842fdc (diff)
Merge branch 'joeyconfig'
Diffstat (limited to 'src/Utility/Process.hs')
-rw-r--r--src/Utility/Process.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Utility/Process.hs b/src/Utility/Process.hs
index c6699961e..ed02f49e 100644
--- a/src/Utility/Process.hs
+++ b/src/Utility/Process.hs
@@ -18,6 +18,7 @@ module Utility.Process (
readProcessEnv,
writeReadProcessEnv,
forceSuccessProcess,
+ forceSuccessProcess',
checkSuccessProcess,
ignoreFailureProcess,
createProcessSuccess,
@@ -129,11 +130,12 @@ writeReadProcessEnv cmd args environ writestdin adjusthandle = do
-- | Waits for a ProcessHandle, and throws an IOError if the process
-- did not exit successfully.
forceSuccessProcess :: CreateProcess -> ProcessHandle -> IO ()
-forceSuccessProcess p pid = do
- code <- waitForProcess pid
- case code of
- ExitSuccess -> return ()
- ExitFailure n -> fail $ showCmd p ++ " exited " ++ show n
+forceSuccessProcess p pid = waitForProcess pid >>= forceSuccessProcess' p
+
+forceSuccessProcess' :: CreateProcess -> ExitCode -> IO ()
+forceSuccessProcess' _ ExitSuccess = return ()
+forceSuccessProcess' p (ExitFailure n) = fail $
+ showCmd p ++ " exited " ++ show n
-- | Waits for a ProcessHandle and returns True if it exited successfully.
-- Note that using this with createProcessChecked will throw away