shell-conduit 4.2 → 4.3
raw patch · 5 files changed
+41/−8 lines, 5 files
Files
- shell-conduit.cabal +2/−1
- src/Data/Conduit/Shell.hs +2/−2
- src/Data/Conduit/Shell/PATH.hs +13/−5
- src/Data/Conduit/Shell/Process.hs +1/−0
- src/Data/Conduit/Shell/Segments.hs +23/−0
shell-conduit.cabal view
@@ -1,5 +1,5 @@ name: shell-conduit-version: 4.2+version: 4.3 synopsis: Write shell scripts with Conduit description: Write shell scripts with Conduit. See "Data.Conduit.Shell" for documentation. license: BSD3@@ -19,6 +19,7 @@ Data.Conduit.Shell.TH Data.Conduit.Shell.Process Data.Conduit.Shell.Types+ Data.Conduit.Shell.Segments Data.Conduit.Shell.Variadic build-depends: async >= 2.0.1.5 , base >= 4 && <5
src/Data/Conduit/Shell.hs view
@@ -110,11 +110,11 @@ where import Data.Conduit-import qualified Data.Conduit.Shell.PATH-import Data.Conduit.Shell.PATH+import Data.Conduit.Shell.PATH hiding (strings) 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/PATH.hs view
@@ -7,10 +7,18 @@ module Data.Conduit.Shell.PATH where -import Control.Monad-import Data.Conduit.Shell.Process-import Data.Conduit.Shell.TH-import Data.List-import Prelude+import Control.Monad+import Control.Monad.IO.Class+import Data.Conduit.Shell.Process+import Data.Conduit.Shell.TH+import Data.Conduit.Shell.Variadic+import Data.List+import qualified Data.Text as T (unpack)+import Prelude+import System.Directory++-- | Helpful CD command.+cd :: (MonadIO m,CmdArg arg) => arg -> m ()+cd fp = liftIO (setCurrentDirectory (T.unpack (toTextArg fp))) $(generateBinaries)
src/Data/Conduit/Shell/Process.hs view
@@ -18,6 +18,7 @@ ,Segment ,ProcessException(..) ,ToChunk(..)+ ,tryS ) where
+ src/Data/Conduit/Shell/Segments.hs view
@@ -0,0 +1,23 @@+-- | Helpful segment combinators.++module Data.Conduit.Shell.Segments where++import qualified Data.ByteString.Char8 as S8+import Data.Conduit+import qualified Data.Conduit.List as CL+import qualified Data.Conduit.Binary as CB+import Data.Conduit.Shell.Process+import Data.Text (Text)+import qualified Data.Text.Encoding as T++-- | Extract the 'String' values from a segment.+strings :: Segment () -> Segment [String]+strings s = s $| conduit (CB.lines $= CL.map S8.unpack $= CL.consume)++-- | Extract the 'Text' values from a segment.+texts :: Segment () -> Segment [Text]+texts s = s $| conduit (CB.lines $= CL.map T.decodeUtf8 $= CL.consume)++-- | Ignore any output from a segment.+ignore :: Segment () -> Segment ()+ignore s = fmap (const ()) (s $| conduit (CL.consume))