summaryrefslogtreecommitdiff
path: root/Utility
diff options
context:
space:
mode:
Diffstat (limited to 'Utility')
-rw-r--r--Utility/ExternalSHA.hs18
1 files changed, 9 insertions, 9 deletions
diff --git a/Utility/ExternalSHA.hs b/Utility/ExternalSHA.hs
index 0defbaa16..3238c4733 100644
--- a/Utility/ExternalSHA.hs
+++ b/Utility/ExternalSHA.hs
@@ -26,16 +26,16 @@ import Prelude
externalSHA :: String -> Int -> FilePath -> IO (Either String String)
externalSHA command shasize file = do
- ls <- lines <$> catchDefaultIO "" (readsha (toCommand [File file]))
- return $ sanitycheck =<< parse ls
+ v <- tryNonAsync $ readsha $ toCommand [File file]
+ return $ case v of
+ Right s -> sanitycheck =<< parse (lines s)
+ Left _ -> Left (command ++ " failed")
where
- {- sha commands output the filename, so need to set fileEncoding -}
- readsha args =
- withHandle StdoutHandle (createProcessChecked checkSuccessProcess) p $ \h -> do
- fileEncoding h
- output <- hGetContentsStrict h
- hClose h
- return output
+ readsha args = withHandle StdoutHandle createProcessSuccess p $ \h -> do
+ fileEncoding h
+ output <- hGetContentsStrict h
+ hClose h
+ return output
where
p = (proc command args) { std_out = CreatePipe }