packages feed

shell-conduit 4.3 → 4.4

raw patch · 3 files changed

+20/−3 lines, 3 files

Files

shell-conduit.cabal view
@@ -1,5 +1,5 @@ name:                shell-conduit-version:             4.3+version:             4.4 synopsis:            Write shell scripts with Conduit description:         Write shell scripts with Conduit. See "Data.Conduit.Shell" for documentation. license:             BSD3
src/Data/Conduit/Shell.hs view
@@ -97,6 +97,8 @@   ,shell   ,proc   ,conduit+  ,text+  ,bytes   -- * Composition of segments   ,($|)   ,Segment@@ -114,7 +116,6 @@ import Data.Conduit.Shell.Process import Data.Conduit.Shell.Types import Data.Conduit.Shell.Variadic-import qualified Data.Text.Encoding as T  -- $exports --
src/Data/Conduit/Shell/Process.hs view
@@ -9,9 +9,13 @@ module Data.Conduit.Shell.Process   (-- * Running scripts    run-   -- * Running processes+   -- * Conduit types+  ,text+  ,bytes+  -- * General conduits   ,conduit   ,conduitEither+  -- * Running processes   ,Data.Conduit.Shell.Process.shell   ,Data.Conduit.Shell.Process.proc   ,($|)@@ -27,11 +31,15 @@ import           Control.Exception import           Control.Monad import           Control.Monad.IO.Class+import           Control.Monad.Trans.Resource import           Data.ByteString (ByteString) import qualified Data.ByteString as S import           Data.Conduit import           Data.Conduit.Binary import qualified Data.Conduit.List as CL+import           Data.Conduit.Text (Codec)+import qualified Data.Conduit.Text as T+import           Data.Text (Text) import           Data.Typeable import           System.Exit import           System.IO@@ -155,6 +163,14 @@ ($|) :: Segment () -> Segment b -> Segment b x $| y = x `fuseSegment` y infixl 0 $|++-- | Work on the stream as 'Text' values from UTF-8.+text :: (r ~ (),m ~ IO) => ConduitM Text Text m r -> Segment r+text conduit = bytes (T.decodeUtf8 $= conduit $= T.encodeUtf8)++-- | Lift a conduit into a segment.+bytes :: (a ~ ByteString,m ~ IO) => ConduitM a ByteString m r -> Segment r+bytes f = SegmentConduit (f `fuseUpstream` CL.map toChunk)  -- | Lift a conduit into a segment. conduit :: (a ~ ByteString,m ~ IO) => ConduitM a ByteString m r -> Segment r