Hacker News new | ask | show | jobs
by Gabriel439 4154 days ago
There are two ways you can embed that within `turtle`. You can either embed each step as its own concurrent process, like this:

    -- Note, the flow is right-to-left, not left-to-right
    inshell "bar" (inshell "fgrep ..." (inshell "foo" empty))
Or you can just embed the entire thing within a single `inshell` command:

    inshell "foo | fgrep ... | bar"
The reason this works is that the type of `inshell` is:

    inshell
        :: Text        -- Command line
        -> Shell Text  -- Standard input to feed
        -> Shell Text  -- Standard output from command
This leads you stream to any shell command's input and read the command's output also as a stream.