From 6dd49287b6c6a657ff21389641b5b25555858e7d Mon Sep 17 00:00:00 2001 From: austin-artificial <126663376+austin-artificial@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:25:36 +0000 Subject: [PATCH] Add `Process.nullStream` (#82) * rename number of `optparse` example * add `Process.setStdin` and `Process.setStderr` * add `Process.nullStream` * create example for `Process.nullStream` * bump `base` upper bound --- examples/{31-optparse.hell => 32-optparse.hell} | 0 examples/33-null-stream.hell | 3 +++ hell.cabal | 2 +- src/Hell.hs | 3 +++ 4 files changed, 7 insertions(+), 1 deletion(-) rename examples/{31-optparse.hell => 32-optparse.hell} (100%) create mode 100644 examples/33-null-stream.hell diff --git a/examples/31-optparse.hell b/examples/32-optparse.hell similarity index 100% rename from examples/31-optparse.hell rename to examples/32-optparse.hell diff --git a/examples/33-null-stream.hell b/examples/33-null-stream.hell new file mode 100644 index 0000000..340701e --- /dev/null +++ b/examples/33-null-stream.hell @@ -0,0 +1,3 @@ +main = do + -- discard stdout + Process.runProcess_ $ Process.setStdout Process.nullStream $ Process.proc "ls" [] diff --git a/hell.cabal b/hell.cabal index 0dbfd34..f447e21 100644 --- a/hell.cabal +++ b/hell.cabal @@ -22,7 +22,7 @@ executable hell QuickCheck , aeson , async - , base >=4.17.2.1 && <4.18 + , base >=4.17.2.1 && <4.19 , bytestring , constraints , containers diff --git a/src/Hell.hs b/src/Hell.hs index b44dde6..22092b2 100644 --- a/src/Hell.hs +++ b/src/Hell.hs @@ -1653,7 +1653,10 @@ polyLits = -- Process "Process.runProcess" runProcess :: forall a b c. ProcessConfig a b c -> IO ExitCode "Process.runProcess_" runProcess_ :: forall a b c. ProcessConfig a b c -> IO () + "Process.setStdin" setStdin :: forall stdin stdin' stdout stderr. StreamSpec 'STInput stdin' -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin' stdout stderr "Process.setStdout" setStdout :: forall stdin stdout stdout' stderr. StreamSpec 'STOutput stdout' -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout' stderr + "Process.setStderr" setStderr :: forall stdin stdout stderr stderr'. StreamSpec 'STOutput stderr' -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr' + "Process.nullStream" Process.nullStream :: forall (a :: StreamType). StreamSpec a () "Process.useHandleClose" useHandleClose :: forall (a :: StreamType). IO.Handle -> StreamSpec a () "Process.useHandleOpen" useHandleOpen :: forall (a :: StreamType). IO.Handle -> StreamSpec a () "Process.setWorkingDir" process_setWorkingDir :: forall a b c. Text -> ProcessConfig a b c -> ProcessConfig a b c