process-conduit 0.5.0.2 → 0.5.0.3
raw patch · 3 files changed
+38/−45 lines, 3 filesdep −HUnitdep −resourcetdep ~hspec
Dependencies removed: HUnit, resourcet
Dependency ranges changed: hspec
Files
- Data/Conduit/Process.hs +1/−4
- process-conduit.cabal +2/−4
- test.hs +35/−37
Data/Conduit/Process.hs view
@@ -21,7 +21,6 @@ import Control.Monad import Control.Monad.Trans import Control.Monad.Trans.Loop -import Control.Monad.Trans.Resource import qualified Data.ByteString as S import Data.Conduit import qualified Data.Conduit.List as CL @@ -38,9 +37,7 @@ :: MonadResource m => CreateProcess -> GConduit S.ByteString m S.ByteString -conduitProcess cp = do - (_, (Just cin, Just cout, _, ph)) <- lift $ allocate createp closep - +conduitProcess cp = bracketP createp closep $ \(Just cin, Just cout, _, ph) -> do end <- repeatLoopT $ do -- if process's outputs are available, then yields them. repeatLoopT $ do
process-conduit.cabal view
@@ -1,5 +1,5 @@ name: process-conduit-version: 0.5.0.2+version: 0.5.0.3 synopsis: Conduits for processes description:@@ -34,7 +34,6 @@ , text >= 0.11 , process >= 1.0 , conduit == 0.5.*- , resourcet , shakespeare-text >= 1.0 ghc-options: -Wall@@ -45,7 +44,6 @@ main-is: ../test.hs build-depends: base == 4.* , bytestring- , hspec >= 1.2- , HUnit >= 1.2+ , hspec >= 1.3 , conduit , process-conduit
test.hs view
@@ -1,37 +1,35 @@-{-# LANGUAGE OverloadedStrings, QuasiQuotes #-} - -import Data.Conduit.Process -import System.Process.QQ - -import qualified Data.ByteString.Lazy.Char8 as L -import Data.Conduit -import qualified Data.Conduit.Binary as CB -import Test.Hspec.Monadic -import Test.Hspec.HUnit -import Test.HUnit - -main :: IO () -main = hspec $ do - describe "process conduit" $ do - it "get process's output" $ do - r <- runResourceT $ sourceCmd "echo abc def" $$ CB.take (10^9) - L.words r @?= ["abc", "def"] - - it "act as conduit" $ do - r <- runResourceT $ - sourceProcess (proc "echo" ["zxc\nasd\nqwe"]) - $$ conduitCmd "sort" - =$ CB.take (10^9) - L.words r @?= ["asd", "qwe", "zxc"] - - describe "quasiquoter" $ do - it "get process's output" $ do - r <- [cmd|echo abc def|] - L.words r @?= ["abc", "def"] - - it "act as conduit" $ do - r <- runResourceT $ - sourceProcess (proc "echo" ["zxc\nasd\nqwe"]) - $$ [ccmd|sort|] - =$ CB.take (10^9) - L.words r @?= ["asd", "qwe", "zxc"] +{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}++import Data.Conduit.Process+import System.Process.QQ++import qualified Data.ByteString.Lazy.Char8 as L+import Data.Conduit+import qualified Data.Conduit.Binary as CB+import Test.Hspec++main :: IO ()+main = hspec $ do+ describe "process conduit" $ do+ it "get process's output" $ do+ r <- runResourceT $ sourceCmd "echo abc def" $$ CB.take (10^9)+ L.words r `shouldBe` ["abc", "def"]++ it "act as conduit" $ do+ r <- runResourceT $+ sourceProcess (proc "echo" ["zxc\nasd\nqwe"])+ $$ conduitCmd "sort"+ =$ CB.take (10^9)+ L.words r `shouldBe` ["asd", "qwe", "zxc"]++ describe "quasiquoter" $ do+ it "get process's output" $ do+ r <- [cmd|echo abc def|]+ L.words r `shouldBe` ["abc", "def"]++ it "act as conduit" $ do+ r <- runResourceT $+ sourceProcess (proc "echo" ["zxc\nasd\nqwe"])+ $$ [ccmd|sort|]+ =$ CB.take (10^9)+ L.words r `shouldBe` ["asd", "qwe", "zxc"]