sys-process-0.1.0: src/Sys/Process.hs
module Sys.Process(
module CmdSpec
, module CreateProcess
, module StdStream
-- * Running sub-processes
, createProcess
, createProcess_
, shell
, proc
-- ** Simpler functions for common tasks
, Process.callProcess
, Process.callCommand
, Process.spawnProcess
, Process.spawnCommand
, readCreateProcess
, Process.readProcess
, readCreateProcessWithExitCode
, readProcessWithExitCode
-- ** Related utilities
, Process.showCommandForUser
-- ** Control-C handling on Unix
-- $ctlc-handling
-- * Process completion
, waitForProcess
, getProcessExitCode
, Process.terminateProcess
, Process.interruptProcessGroupOf
-- * Interprocess communication
, Process.createPipe
) where
{-
-- ** Related utilities
showCommandForUser,
-- ** Control-C handling on Unix
-- $ctlc-handling
-- * Process completion
waitForProcess,
getProcessExitCode,
terminateProcess,
interruptProcessGroupOf,
-- Interprocess communication
-}
import Control.Category(Category((.)))
import Control.Lens((#), (%~), (^.), _1)
import Data.Functor(Functor(fmap))
import Data.Maybe(Maybe)
import Data.String(String)
import Sys.CmdSpec as CmdSpec
import Sys.CreateProcess as CreateProcess
import Sys.StdStream as StdStream
import Sys.ExitCode(ExitCode, unExitCode)
import System.FilePath(FilePath)
import System.IO(Handle, IO)
import qualified System.Process as Process
import Prelude()
createProcess ::
CreateProcess
-> IO (Maybe Handle, Maybe Handle, Maybe Handle, Process.ProcessHandle)
createProcess =
Process.createProcess . (_CreateProcess #)
createProcess_ ::
String
-> CreateProcess
-> IO (Maybe Handle, Maybe Handle, Maybe Handle, Process.ProcessHandle)
createProcess_ s =
Process.createProcess_ s . (_CreateProcess #)
shell ::
String
-> CreateProcess
shell s =
Process.shell s ^. _CreateProcess
proc ::
FilePath
-> [String]
-> CreateProcess
proc p s =
Process.proc p s ^. _CreateProcess
readCreateProcess ::
CreateProcess
-> String
-> IO String
readCreateProcess =
Process.readCreateProcess . (_CreateProcess #)
readCreateProcessWithExitCode ::
CreateProcess
-> String
-> IO (ExitCode, String, String)
readCreateProcessWithExitCode p =
fmap (_1 %~ unExitCode) . Process.readCreateProcessWithExitCode (_CreateProcess # p)
readProcessWithExitCode ::
FilePath
-> [String]
-> String
-> IO (ExitCode, String, String)
readProcessWithExitCode f a =
fmap (_1 %~ unExitCode) . Process.readProcessWithExitCode f a
waitForProcess ::
Process.ProcessHandle
-> IO ExitCode
waitForProcess =
fmap unExitCode . Process.waitForProcess
getProcessExitCode ::
Process.ProcessHandle
-> IO (Maybe ExitCode)
getProcessExitCode =
fmap (fmap unExitCode) . Process.getProcessExitCode