neil-0.0: src/Util.hs
module Util(cmd, cmdCode, cmdOut, cmdCodeOutErr) where
import Control.Monad
import System.Exit
import System.IO.Extra
import System.Cmd
cmdCodeOutErr :: String -> IO (ExitCode, String, String)
cmdCodeOutErr x = withTempFile $ \stderr -> withTempFile $ \stdout -> do
res <- system $ x ++ " > " ++ stdout ++ " 2> " ++ stderr
err <- readFile' stderr
out <- readFile' stdout
return (res,out,err)
cmdOut :: String -> IO String
cmdOut x = withTempFile $ \stdout -> do
res <- system $ x ++ " > " ++ stdout
out <- readFile' stdout
when (res /= ExitSuccess) $
error $ "Failed in system command: " ++ x
return out
cmdCode :: String -> IO ExitCode
cmdCode = system
cmd :: String -> IO ()
cmd x = do
res <- system x
when (res /= ExitSuccess) $
error $ "Failed in system command: " ++ x