{-# OPTIONS_GHC -fno-warn-tabs #-}
module Utility.Process.NonConcurrent where
import System.Process
import System.Exit
import System.IO
import Utility.SafeCommand
import Control.Applicative
import Prelude
boolSystemNonConcurrent :: String -> [CommandParam] -> IO Bool
boolSystemNonConcurrent cmd params = do
(Nothing, Nothing, Nothing, p) <- createProcessNonConcurrent $
proc cmd (toCommand params)
dispatch <$> waitForProcessNonConcurrent p
where
dispatch ExitSuccess = True
dispatch _ = False
createProcessNonConcurrent :: CreateProcess -> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
createProcessNonConcurrent = createProcess
waitForProcessNonConcurrent :: ProcessHandle -> IO ExitCode
waitForProcessNonConcurrent = waitForProcess