sys-process 0.1.3 → 0.1.4
raw patch · 5 files changed
+115/−6 lines, 5 filesdep ~directorydep ~notzero
Dependency ranges changed: directory, notzero
Files
- changelog +6/−2
- src/Sys/CreateProcess.hs +3/−0
- src/Sys/Exit.hs +67/−0
- src/Sys/Process.hs +36/−2
- sys-process.cabal +3/−2
changelog view
@@ -1,10 +1,14 @@+0.1.4++* Additional process libraries.+ 0.1.3 -* Improved haddock+* Improved haddock. 0.1.2 -* Fix haddock+* Fix haddock. 0.1.1
src/Sys/CreateProcess.hs view
@@ -28,6 +28,9 @@ import System.FilePath(FilePath) import qualified System.Process as Process +-- | Data type representing a process.+--+-- /see 'System.Process.CreateProcess'/. data CreateProcess = CreateProcess CmdSpec
src/Sys/Exit.hs view
@@ -6,9 +6,19 @@ , exitWithFailure , exitWithFailure1 , exitWithSuccess+, ExitCodeM+, exitCodeM+, createWaitProcessM+, createMakeWaitProcessM+, createWaitProcesses+, createMakeWaitProcesses+, exit+, createWaitProcessesExit+, createMakeWaitProcessesExit ) where import Data.NotZero+import Data.NotZeroOr import qualified System.Exit as Exit import Sys.ExitCode import Sys.Process as Process@@ -77,3 +87,60 @@ IO a exitWithSuccess = exitWith exitSuccess++type ExitCodeM f =+ NumberM Int f++exitCodeM ::+ f (Number Int) + -> ExitCodeM f+exitCodeM =+ NotZeroOrT++createWaitProcessM ::+ CreateProcess + -> ExitCodeM IO+createWaitProcessM =+ exitCodeM . createWaitProcess++createMakeWaitProcessM ::+ CreateProcess + -> ExitCodeM IO+createMakeWaitProcessM =+ exitCodeM . createMakeWaitProcess++createWaitProcesses ::+ Foldable t =>+ t CreateProcess+ -> ExitCodeM IO+createWaitProcesses =+ mapM_ createWaitProcessM++createMakeWaitProcesses ::+ Foldable t =>+ t CreateProcess+ -> ExitCodeM IO+createMakeWaitProcesses =+ mapM_ createMakeWaitProcessM++exit ::+ ExitCodeM IO+ -> IO ()+exit e =+ let NotZeroOrT x = e+ in x >>= exitWith++createWaitProcessesExit ::+ Foldable t =>+ t CreateProcess+ -> IO ()+createWaitProcessesExit =+ exit . createWaitProcesses++createMakeWaitProcessesExit ::+ Foldable t =>+ t CreateProcess+ -> IO ()+createMakeWaitProcessesExit =+ exit . createMakeWaitProcesses+
src/Sys/Process.hs view
@@ -6,8 +6,12 @@ -- * Running sub-processes , createProcess , createProcess_+, createProcessHandle+, createWaitProcess+, createMakeWaitProcess , shell , proc+, procIn -- ** Simpler functions for common tasks , callProcess , callCommand@@ -31,14 +35,17 @@ ) where import Control.Category(Category((.)))-import Control.Lens((#), (%~), (^.), _1)+import Control.Monad((>=>), mapM_)+import Control.Lens((#), (%~), (^.), (.~), _1, _4, view)+import Data.Bool(Bool(True)) import Data.Functor(Functor(fmap))-import Data.Maybe(Maybe)+import Data.Maybe(Maybe(Just)) 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.Directory(createDirectoryIfMissing) import System.FilePath(FilePath) import System.IO(Handle, IO) import qualified System.Process as Process@@ -113,6 +120,25 @@ createProcess_ s = Process.createProcess_ s . (_CreateProcess #) +createProcessHandle ::+ CreateProcess+ -> IO Process.ProcessHandle+createProcessHandle =+ fmap (view _4) . createProcess++createWaitProcess ::+ CreateProcess+ -> IO ExitCode+createWaitProcess =+ createProcessHandle >=> waitForProcess++createMakeWaitProcess ::+ CreateProcess+ -> IO ExitCode+createMakeWaitProcess p =+ do mapM_ (createDirectoryIfMissing True) (p ^. _WorkingDirectory)+ createWaitProcess p+ -- | Construct a 'CreateProcess' record for passing to 'createProcess', -- representing a command to be passed to the shell. --@@ -135,6 +161,14 @@ -> CreateProcess proc p s = Process.proc p s ^. _CreateProcess++procIn ::+ FilePath -- ^ the working directory+ -> FilePath+ -> [String]+ -> CreateProcess+procIn dir p s =+ (_WorkingDirectory .~ Just dir) (proc p s) -- | Creates a new process to run the specified command with the given -- arguments, and wait for it to finish. If the command returns a non-zero
sys-process.cabal view
@@ -1,5 +1,5 @@ name: sys-process-version: 0.1.3+version: 0.1.4 license: BSD3 license-file: LICENSE author: Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ> <dibblego>@@ -37,8 +37,9 @@ , lens >= 4.0 && < 5 , transformers >= 0.3 && < 0.5 , process >= 1.2.3 && < 1.3- , notzero >= 0.0.8 && <= 0.1+ , notzero >= 0.0.10 && <= 0.1 , filepath >= 1.4 && < 2.0+ , directory >= 1.2 && < 2.0 ghc-options: -Wall