packages feed

shh-0.1.0.0: src/Shh.hs

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE GADTs #-}
-- | Shh provides a shell-like environment for Haskell.
module Shh
    ( initInteractive
    -- | == Constructing a `Proc`
    -- You will rarely have to use these as most of the time these are
    -- created for you by using the `loadEnv` template Haskell function.
    , exe
    , mkProc
    , runProc
    , Proc()
    -- | == Piping and Redirection
    , PipeResult(..)
    , (<|)
    , Stream(..)
    , devNull
    -- | == Reading @stdout@
    , readProc
    , withRead
    , trim
    , readTrim
    , split0
    , readSplit0
    , readLines
    , readAuto
    -- | == Writing to @stdin@
    , writeProc
    , (<<<), (>>>)
    , readWriteProc
    , mapP
    -- | == Exceptions
    -- If any exception is allowed to propagate out of a pipeline, all the
    -- processes comprising the pipeline will be terminated. This is contrary
    -- to how a shell normally works (even with @-o pipefail@!).
    , Failure(..)
    , ignoreFailure
    , catchFailure
    , catchCode
    -- | == Constructing Arguments
    , ExecArg(..)
    -- | == Template Haskell helpers
    , loadEnv
    , loadAnnotatedEnv
    , loadExe
    , loadExeAs
    ) where

import Shh.Internal