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