From e61aaed023a3f593234de2f9cb615df1a1425202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Thu, 17 Jul 2014 15:52:33 +0200 Subject: [PATCH] Make `readProcess'`more generic --- Language/Haskell/GhcMod/Utils.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Language/Haskell/GhcMod/Utils.hs b/Language/Haskell/GhcMod/Utils.hs index 365f1b9..9937e78 100644 --- a/Language/Haskell/GhcMod/Utils.hs +++ b/Language/Haskell/GhcMod/Utils.hs @@ -1,5 +1,6 @@ module Language.Haskell.GhcMod.Utils where +import MonadUtils (MonadIO, liftIO) import Control.Exception (bracket) import System.Directory (getCurrentDirectory, setCurrentDirectory) import System.Process (readProcessWithExitCode) @@ -22,12 +23,12 @@ extractParens str = extractParens' str 0 | s `elem` "}])" = s : extractParens' ss (level-1) | otherwise = s : extractParens' ss level -readProcess' :: String -> [String] -> IO String +readProcess' :: MonadIO m => String -> [String] -> m String readProcess' cmd opts = do - (rv,output,err) <- readProcessWithExitCode cmd opts "" + (rv,output,err) <- liftIO $ readProcessWithExitCode cmd opts "" case rv of ExitFailure val -> do - hPutStrLn stderr err + liftIO $ hPutStrLn stderr err fail $ cmd ++ " " ++ unwords opts ++ " (exit " ++ show val ++ ")" ExitSuccess -> return output