-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Write shell scripts with Conduit
--   
--   Write shell scripts with Conduit. See <a>Data.Conduit.Shell</a> for
--   documentation.
@package shell-conduit
@version 4.7.0


-- | Reading from the process.
module Data.Conduit.Shell.Process

-- | Run a segment.
run :: Segment r -> IO r

-- | Work on the stream as <a>Text</a> values from UTF-8.
text :: (r ~ (), m ~ IO) => ConduitT Text Text m r -> Segment r

-- | Lift a conduit into a segment.
bytes :: (a ~ ByteString, m ~ IO) => ConduitT a ByteString m r -> Segment r

-- | Lift a conduit into a segment.
conduit :: (a ~ ByteString, m ~ IO) => ConduitT a ByteString m r -> Segment r

-- | Lift a conduit into a segment, which can yield stderr.
conduitEither :: (a ~ ByteString, m ~ IO) => ConduitT a (Either ByteString ByteString) m r -> Segment r

-- | Run a shell command.
shell :: String -> Segment ()

-- | Run a process command.
proc :: String -> [String] -> Segment ()

-- | Fuse two segments (either processes or conduits).
($|) :: Segment () -> Segment b -> Segment b
infixl 0 $|

-- | A pipeable segment. Either a conduit or a process.
data Segment r

-- | Process running exception.
data ProcessException
ProcessException :: CreateProcess -> ExitCode -> ProcessException
ProcessEmpty :: ProcessException

-- | Used to allow outputting stdout or stderr.
class ToChunk a
toChunk :: ToChunk a => a -> Either ByteString ByteString

-- | Try something in a segment.
tryS :: Exception e => Segment r -> Segment (Either e r)
instance (a ~ Data.ByteString.Internal.ByteString, Data.Conduit.Shell.Process.ToChunk b, m ~ GHC.Types.IO) => Data.Conduit.Shell.Process.ToSegment (Data.Conduit.Internal.Conduit.ConduitT a b m r)
instance Data.Conduit.Shell.Process.ToChunk Data.ByteString.Internal.ByteString
instance Data.Conduit.Shell.Process.ToChunk (Data.Either.Either Data.ByteString.Internal.ByteString Data.ByteString.Internal.ByteString)
instance Data.Conduit.Shell.Process.ToSegment (Data.Conduit.Shell.Process.Segment r)
instance Data.Conduit.Shell.Process.ToSegment System.Process.Common.CreateProcess
instance GHC.Base.Alternative Data.Conduit.Shell.Process.Segment
instance GHC.Exception.Exception Data.Conduit.Shell.Process.ProcessException
instance GHC.Show.Show Data.Conduit.Shell.Process.ProcessException
instance GHC.Base.Monad Data.Conduit.Shell.Process.Segment
instance GHC.Base.Functor Data.Conduit.Shell.Process.Segment
instance GHC.Base.Applicative Data.Conduit.Shell.Process.Segment
instance Control.Monad.IO.Class.MonadIO Data.Conduit.Shell.Process.Segment


-- | Helpful segment combinators.
module Data.Conduit.Shell.Segments

-- | Extract the <a>String</a> values from a segment.
strings :: Segment () -> Segment [String]

-- | Extract the <a>Text</a> values from a segment.
texts :: Segment () -> Segment [Text]

-- | Ignore any output from a segment.
ignore :: Segment () -> Segment ()


-- | All types.
module Data.Conduit.Shell.Types

-- | Shell transformer.
newtype ShellT m a
ShellT :: ResourceT m a -> ShellT m a
[runShellT] :: ShellT m a -> ResourceT m a

-- | Intentionally only handles <a>ShellException</a>. Use normal exception
--   handling to handle usual exceptions.

-- | An exception resulting from a shell command.
data ShellException

-- | For <a>mempty</a>.
ShellEmpty :: ShellException

-- | Process exited with failure.
ShellExitFailure :: !Int -> ShellException
instance GHC.Show.Show Data.Conduit.Shell.Types.ShellException
instance Control.Monad.Trans.Class.MonadTrans Data.Conduit.Shell.Types.ShellT
instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Data.Conduit.Shell.Types.ShellT m)
instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Data.Conduit.Shell.Types.ShellT m)
instance GHC.Base.Functor m => GHC.Base.Functor (Data.Conduit.Shell.Types.ShellT m)
instance GHC.Base.Monad m => GHC.Base.Monad (Data.Conduit.Shell.Types.ShellT m)
instance GHC.Base.Applicative m => GHC.Base.Applicative (Data.Conduit.Shell.Types.ShellT m)
instance Control.Monad.IO.Unlift.MonadUnliftIO m => Control.Monad.Trans.Resource.Internal.MonadResource (Data.Conduit.Shell.Types.ShellT m)
instance (Control.Monad.IO.Unlift.MonadUnliftIO (Data.Conduit.Shell.Types.ShellT m), GHC.Base.Applicative m, Control.Monad.Catch.MonadThrow m) => GHC.Base.Alternative (Data.Conduit.Internal.Conduit.ConduitT i o (Data.Conduit.Shell.Types.ShellT m))
instance GHC.Exception.Exception Data.Conduit.Shell.Types.ShellException


-- | Variadic process calling.
module Data.Conduit.Shell.Variadic

-- | Process return type.
class ProcessType t
spr :: ProcessType t => String -> [Text] -> t

-- | A variadic process maker.
variadicProcess :: (ProcessType r) => String -> r

-- | Command line argument.
class CmdArg a
toTextArg :: CmdArg a => a -> [Text]
instance (Data.Conduit.Shell.Variadic.ProcessType r, Data.Conduit.Shell.Variadic.CmdArg a) => Data.Conduit.Shell.Variadic.ProcessType (a -> r)
instance Data.Conduit.Shell.Variadic.CmdArg Data.Text.Internal.Text
instance Data.Conduit.Shell.Variadic.CmdArg Data.Text.Internal.Lazy.Text
instance Data.Conduit.Shell.Variadic.CmdArg Data.ByteString.Internal.ByteString
instance Data.Conduit.Shell.Variadic.CmdArg Data.ByteString.Lazy.Internal.ByteString
instance Data.Conduit.Shell.Variadic.CmdArg GHC.Base.String
instance Data.Conduit.Shell.Variadic.CmdArg [GHC.Base.String]
instance Data.Conduit.Shell.Variadic.CmdArg [Data.Text.Internal.Text]
instance Data.Conduit.Shell.Variadic.CmdArg [Data.Text.Internal.Lazy.Text]
instance Data.Conduit.Shell.Variadic.CmdArg [Data.ByteString.Internal.ByteString]
instance Data.Conduit.Shell.Variadic.CmdArg [Data.ByteString.Lazy.Internal.ByteString]
instance r ~ () => Data.Conduit.Shell.Variadic.ProcessType (Data.Conduit.Shell.Process.Segment r)


-- | Generate top-level names for binaries.
module Data.Conduit.Shell.TH

-- | Generate top-level names for all binaries in PATH.
generateBinaries :: Q [Dec]


-- | All binaries in PATH.
module Data.Conduit.Shell.PATH

-- | Helpful CD command.
cd :: (MonadIO m, CmdArg arg) => arg -> m ()
bzless :: ProcessType r => r
bzfgrep :: ProcessType r => r
bzegrep :: ProcessType r => r
bzcmp :: ProcessType r => r
bzmore :: ProcessType r => r
bzip2recover :: ProcessType r => r
bzip2 :: ProcessType r => r
bzgrep :: ProcessType r => r
bzexe :: ProcessType r => r
bzdiff :: ProcessType r => r
bzcat :: ProcessType r => r
bunzip2 :: ProcessType r => r
sh :: ProcessType r => r
shdistrib :: ProcessType r => r
wdctl :: ProcessType r => r
mountpoint :: ProcessType r => r
more :: ProcessType r => r
lsblk :: ProcessType r => r
findmnt :: ProcessType r => r
dmesg :: ProcessType r => r
umount :: ProcessType r => r
mount :: ProcessType r => r
tar :: ProcessType r => r
su :: ProcessType r => r
login :: ProcessType r => r
sed :: ProcessType r => r
ypdomainname :: ProcessType r => r
nisdomainname :: ProcessType r => r
domainname :: ProcessType r => r
dnsdomainname :: ProcessType r => r
hostname :: ProcessType r => r
znew :: ProcessType r => r
zmore :: ProcessType r => r
zless :: ProcessType r => r
zgrep :: ProcessType r => r
zforce :: ProcessType r => r
zfgrep :: ProcessType r => r
zegrep :: ProcessType r => r
zdiff :: ProcessType r => r
zcmp :: ProcessType r => r
zcat :: ProcessType r => r
uncompress :: ProcessType r => r
gzip :: ProcessType r => r
gzexe :: ProcessType r => r
gunzip :: ProcessType r => r
grep :: ProcessType r => r
fgrep :: ProcessType r => r
egrep :: ProcessType r => r
tempfile :: ProcessType r => r
runParts :: ProcessType r => r
dash :: ProcessType r => r
vdir :: ProcessType r => r
uname :: ProcessType r => r
true :: ProcessType r => r
sync :: ProcessType r => r
stty :: ProcessType r => r
sleep :: ProcessType r => r
rmdir :: ProcessType r => r
rm :: ProcessType r => r
readlink :: ProcessType r => r
pwd :: ProcessType r => r
mv :: ProcessType r => r
mktemp :: ProcessType r => r
mknod :: ProcessType r => r
mkdir :: ProcessType r => r
ls :: ProcessType r => r
ln :: ProcessType r => r
false :: ProcessType r => r
echo :: ProcessType r => r
dir :: ProcessType r => r
df :: ProcessType r => r
dd :: ProcessType r => r
date :: ProcessType r => r
cp :: ProcessType r => r
chown :: ProcessType r => r
chmod :: ProcessType r => r
chgrp :: ProcessType r => r
cat :: ProcessType r => r
rbash :: ProcessType r => r
bash :: ProcessType r => r
pidof :: ProcessType r => r
ss :: ProcessType r => r
ncopenbsd :: ProcessType r => r
nc :: ProcessType r => r
netcat :: ProcessType r => r
startStopDaemon :: ProcessType r => r
getty :: ProcessType r => r
zramctl :: ProcessType r => r
wipefs :: ProcessType r => r
switchRoot :: ProcessType r => r
swaplabel :: ProcessType r => r
sulogin :: ProcessType r => r
runuser :: ProcessType r => r
raw :: ProcessType r => r
pivotRoot :: ProcessType r => r
mkswap :: ProcessType r => r
mkfsminix :: ProcessType r => r
mkfscramfs :: ProcessType r => r
mkfsbfs :: ProcessType r => r
mkfs :: ProcessType r => r
isosize :: ProcessType r => r
hwclock :: ProcessType r => r
fstrim :: ProcessType r => r
fsfreeze :: ProcessType r => r
fsckminix :: ProcessType r => r
fsckcramfs :: ProcessType r => r
fsck :: ProcessType r => r
findfs :: ProcessType r => r
ctrlaltdel :: ProcessType r => r
chcpu :: ProcessType r => r
blockdev :: ProcessType r => r
blkid :: ProcessType r => r
blkdiscard :: ProcessType r => r
agetty :: ProcessType r => r
swapon :: ProcessType r => r
swapoff :: ProcessType r => r
losetup :: ProcessType r => r
sfdisk :: ProcessType r => r
fdisk :: ProcessType r => r
cfdisk :: ProcessType r => r
killall5 :: ProcessType r => r
fstabDecode :: ProcessType r => r
shadowconfig :: ProcessType r => r
unixUpdate :: ProcessType r => r
unixChkpwd :: ProcessType r => r
pamTally2 :: ProcessType r => r
pamTally :: ProcessType r => r
mkhomedirHelper :: ProcessType r => r
ldconfig :: ProcessType r => r
mkfsext4 :: ProcessType r => r
mkfsext3 :: ProcessType r => r
mkfsext2 :: ProcessType r => r
fsckext4 :: ProcessType r => r
fsckext3 :: ProcessType r => r
fsckext2 :: ProcessType r => r
e2label :: ProcessType r => r
tune2fs :: ProcessType r => r
resize2fs :: ProcessType r => r
mke2fs :: ProcessType r => r
logsave :: ProcessType r => r
e2undo :: ProcessType r => r
e2image :: ProcessType r => r
e2fsck :: ProcessType r => r
dumpe2fs :: ProcessType r => r
debugfs :: ProcessType r => r
badblocks :: ProcessType r => r
installkernel :: ProcessType r => r
bridge :: ProcessType r => r
devlink :: ProcessType r => r
rtacct :: ProcessType r => r
rtmon :: ProcessType r => r
tc :: ProcessType r => r
tipc :: ProcessType r => r
ip :: ProcessType r => r
openssl :: ProcessType r => r
cRehash :: ProcessType r => r
xzfgrep :: ProcessType r => r
xzegrep :: ProcessType r => r
xzcmp :: ProcessType r => r
xzcat :: ProcessType r => r
unxz :: ProcessType r => r
xzmore :: ProcessType r => r
xzless :: ProcessType r => r
xzgrep :: ProcessType r => r
xzdiff :: ProcessType r => r
xz :: ProcessType r => r
lzmainfo :: ProcessType r => r
zipdetails :: ProcessType r => r
xsubpp :: ProcessType r => r
splain :: ProcessType r => r
shasum :: ProcessType r => r
ptargrep :: ProcessType r => r
ptardiff :: ProcessType r => r
ptar :: ProcessType r => r
prove :: ProcessType r => r
podselect :: ProcessType r => r
podchecker :: ProcessType r => r
pod2usage :: ProcessType r => r
pod2text :: ProcessType r => r
pod2man :: ProcessType r => r
pod2html :: ProcessType r => r
pl2pm :: ProcessType r => r
piconv :: ProcessType r => r
perlthanks :: ProcessType r => r
perlivp :: ProcessType r => r
perldoc :: ProcessType r => r
perlbug :: ProcessType r => r
libnetcfg :: ProcessType r => r
jsonPp :: ProcessType r => r
instmodsh :: ProcessType r => r
h2xs :: ProcessType r => r
h2ph :: ProcessType r => r
encguess :: ProcessType r => r
enc2xs :: ProcessType r => r
cpan :: ProcessType r => r
corelist :: ProcessType r => r
perl526X8664LinuxGnu :: ProcessType r => r
cpan526X8664LinuxGnu :: ProcessType r => r
patch :: ProcessType r => r
makeFirstExistingTarget :: ProcessType r => r
make :: ProcessType r => r
sprof :: ProcessType r => r
sotruss :: ProcessType r => r
rpcgen :: ProcessType r => r
mtrace :: ProcessType r => r
gencat :: ProcessType r => r
x8664LinuxGnuGcovTool :: ProcessType r => r
x8664LinuxGnuGcovDump :: ProcessType r => r
x8664LinuxGnuGcov :: ProcessType r => r
x8664LinuxGnuGccRanlib :: ProcessType r => r
x8664LinuxGnuGccNm :: ProcessType r => r
x8664LinuxGnuGccAr :: ProcessType r => r
x8664LinuxGnuGcc :: ProcessType r => r
gcovTool :: ProcessType r => r
gcovDump :: ProcessType r => r
gcov :: ProcessType r => r
gccRanlib :: ProcessType r => r
gccNm :: ProcessType r => r
gccAr :: ProcessType r => r
gcc :: ProcessType r => r
c99Gcc :: ProcessType r => r
c89Gcc :: ProcessType r => r
x8664LinuxGnuG :: ProcessType r => r
g :: ProcessType r => r
x8664LinuxGnuCpp :: ProcessType r => r
cpp :: ProcessType r => r
gcovTool7 :: ProcessType r => r
gcovDump7 :: ProcessType r => r
gcov7 :: ProcessType r => r
gccRanlib7 :: ProcessType r => r
gccNm7 :: ProcessType r => r
gccAr7 :: ProcessType r => r
gcc7 :: ProcessType r => r
x8664LinuxGnuGcovTool7 :: ProcessType r => r
x8664LinuxGnuGcovDump7 :: ProcessType r => r
x8664LinuxGnuGcov7 :: ProcessType r => r
x8664LinuxGnuGccRanlib7 :: ProcessType r => r
x8664LinuxGnuGccNm7 :: ProcessType r => r
x8664LinuxGnuGccAr7 :: ProcessType r => r
x8664LinuxGnuGcc7 :: ProcessType r => r
g7 :: ProcessType r => r
x8664LinuxGnuG7 :: ProcessType r => r
cpp7 :: ProcessType r => r
x8664LinuxGnuCpp7 :: ProcessType r => r
fakerootTcp :: ProcessType r => r
fakerootSysv :: ProcessType r => r
fakedTcp :: ProcessType r => r
fakedSysv :: ProcessType r => r
dpkgVendor :: ProcessType r => r
dpkgSource :: ProcessType r => r
dpkgShlibdeps :: ProcessType r => r
dpkgScansources :: ProcessType r => r
dpkgScanpackages :: ProcessType r => r
dpkgParsechangelog :: ProcessType r => r
dpkgName :: ProcessType r => r
dpkgMergechangelogs :: ProcessType r => r
dpkgGensymbols :: ProcessType r => r
dpkgGencontrol :: ProcessType r => r
dpkgGenchanges :: ProcessType r => r
dpkgGenbuildinfo :: ProcessType r => r
dpkgDistaddfile :: ProcessType r => r
dpkgCheckbuilddeps :: ProcessType r => r
dpkgBuildpackage :: ProcessType r => r
dpkgBuildflags :: ProcessType r => r
dpkgArchitecture :: ProcessType r => r
x8664LinuxGnuLd :: ProcessType r => r
x8664LinuxGnuGold :: ProcessType r => r
x8664LinuxGnuStrip :: ProcessType r => r
x8664LinuxGnuStrings :: ProcessType r => r
x8664LinuxGnuSize :: ProcessType r => r
x8664LinuxGnuReadelf :: ProcessType r => r
x8664LinuxGnuRanlib :: ProcessType r => r
x8664LinuxGnuObjdump :: ProcessType r => r
x8664LinuxGnuObjcopy :: ProcessType r => r
x8664LinuxGnuNm :: ProcessType r => r
x8664LinuxGnuLdgold :: ProcessType r => r
x8664LinuxGnuLdbfd :: ProcessType r => r
x8664LinuxGnuGprof :: ProcessType r => r
x8664LinuxGnuElfedit :: ProcessType r => r
x8664LinuxGnuDwp :: ProcessType r => r
x8664LinuxGnuCfilt :: ProcessType r => r
x8664LinuxGnuAs :: ProcessType r => r
x8664LinuxGnuAr :: ProcessType r => r
x8664LinuxGnuAddr2line :: ProcessType r => r
strip :: ProcessType r => r
strings :: ProcessType r => r
size :: ProcessType r => r
readelf :: ProcessType r => r
ranlib :: ProcessType r => r
objdump :: ProcessType r => r
objcopy :: ProcessType r => r
nm :: ProcessType r => r
ldgold :: ProcessType r => r
ldbfd :: ProcessType r => r
ld :: ProcessType r => r
gprof :: ProcessType r => r
gold :: ProcessType r => r
elfedit :: ProcessType r => r
dwp :: ProcessType r => r
cfilt :: ProcessType r => r
as :: ProcessType r => r
ar :: ProcessType r => r
addr2line :: ProcessType r => r
x8664 :: ProcessType r => r
linux64 :: ProcessType r => r
linux32 :: ProcessType r => r
lastb :: ProcessType r => r
i386 :: ProcessType r => r
whereis :: ProcessType r => r
utmpdump :: ProcessType r => r
unshare :: ProcessType r => r
taskset :: ProcessType r => r
setterm :: ProcessType r => r
setsid :: ProcessType r => r
setarch :: ProcessType r => r
rev :: ProcessType r => r
resizepart :: ProcessType r => r
renameul :: ProcessType r => r
prlimit :: ProcessType r => r
partx :: ProcessType r => r
nsenter :: ProcessType r => r
namei :: ProcessType r => r
mesg :: ProcessType r => r
mcookie :: ProcessType r => r
lsns :: ProcessType r => r
lsmem :: ProcessType r => r
lslogins :: ProcessType r => r
lslocks :: ProcessType r => r
lsipc :: ProcessType r => r
lscpu :: ProcessType r => r
last' :: ProcessType r => r
ipcs :: ProcessType r => r
ipcrm :: ProcessType r => r
ipcmk :: ProcessType r => r
ionice :: ProcessType r => r
getopt :: ProcessType r => r
flock :: ProcessType r => r
fallocate :: ProcessType r => r
delpart :: ProcessType r => r
chrt :: ProcessType r => r
addpart :: ProcessType r => r
wall :: ProcessType r => r
scriptreplay :: ProcessType r => r
script :: ProcessType r => r
renice :: ProcessType r => r
logger :: ProcessType r => r
passwd :: ProcessType r => r
gpasswd :: ProcessType r => r
expiry :: ProcessType r => r
chsh :: ProcessType r => r
chfn :: ProcessType r => r
chage :: ProcessType r => r
sg :: ProcessType r => r
newgrp :: ProcessType r => r
lastlog :: ProcessType r => r
faillog :: ProcessType r => r
perl5261 :: ProcessType r => r
perl :: ProcessType r => r
reset :: ProcessType r => r
infotocap :: ProcessType r => r
captoinfo :: ProcessType r => r
tset :: ProcessType r => r
tput :: ProcessType r => r
toe :: ProcessType r => r
tic :: ProcessType r => r
tabs :: ProcessType r => r
infocmp :: ProcessType r => r
clear :: ProcessType r => r
mawk :: ProcessType r => r
debSystemdInvoke :: ProcessType r => r
debSystemdHelper :: ProcessType r => r
rgrep :: ProcessType r => r
gpgv :: ProcessType r => r
zdump :: ProcessType r => r
tzselect :: ProcessType r => r
pldd :: ProcessType r => r
localedef :: ProcessType r => r
locale :: ProcessType r => r
ldd :: ProcessType r => r
iconv :: ProcessType r => r
getent :: ProcessType r => r
getconf :: ProcessType r => r
catchsegv :: ProcessType r => r
xargs :: ProcessType r => r
find' :: ProcessType r => r
lsattr :: ProcessType r => r
chattr :: ProcessType r => r
updateAlternatives :: ProcessType r => r
dpkgTrigger :: ProcessType r => r
dpkgStatoverride :: ProcessType r => r
dpkgSplit :: ProcessType r => r
dpkgQuery :: ProcessType r => r
dpkgMaintscriptHelper :: ProcessType r => r
dpkgDivert :: ProcessType r => r
dpkgDeb :: ProcessType r => r
dpkg :: ProcessType r => r
sdiff :: ProcessType r => r
diff3 :: ProcessType r => r
diff :: ProcessType r => r
cmp :: ProcessType r => r
savelog :: ProcessType r => r
ischroot :: ProcessType r => r
debconfShow :: ProcessType r => r
debconfSetSelections :: ProcessType r => r
debconfEscape :: ProcessType r => r
debconfCopydb :: ProcessType r => r
debconfCommunicate :: ProcessType r => r
debconfAptProgress :: ProcessType r => r
debconf :: ProcessType r => r
md5sumtextutils :: ProcessType r => r
yes :: ProcessType r => r
whoami :: ProcessType r => r
who :: ProcessType r => r
wc :: ProcessType r => r
users :: ProcessType r => r
unlink :: ProcessType r => r
uniq :: ProcessType r => r
unexpand :: ProcessType r => r
tty :: ProcessType r => r
tsort :: ProcessType r => r
truncate' :: ProcessType r => r
tr :: ProcessType r => r
timeout :: ProcessType r => r
test :: ProcessType r => r
tee :: ProcessType r => r
tail' :: ProcessType r => r
tac :: ProcessType r => r
sum' :: ProcessType r => r
stdbuf :: ProcessType r => r
stat :: ProcessType r => r
split :: ProcessType r => r
sort' :: ProcessType r => r
shuf :: ProcessType r => r
shred :: ProcessType r => r
sha512sum :: ProcessType r => r
sha384sum :: ProcessType r => r
sha256sum :: ProcessType r => r
sha224sum :: ProcessType r => r
sha1sum :: ProcessType r => r
seq' :: ProcessType r => r
runcon :: ProcessType r => r
realpath :: ProcessType r => r
ptx :: ProcessType r => r
printf :: ProcessType r => r
printenv :: ProcessType r => r
pr :: ProcessType r => r
pinky :: ProcessType r => r
pathchk :: ProcessType r => r
paste :: ProcessType r => r
od :: ProcessType r => r
numfmt :: ProcessType r => r
nproc :: ProcessType r => r
nohup :: ProcessType r => r
nl :: ProcessType r => r
nice :: ProcessType r => r
mkfifo :: ProcessType r => r
md5sum :: ProcessType r => r
logname :: ProcessType r => r
link :: ProcessType r => r
join' :: ProcessType r => r
install :: ProcessType r => r
id' :: ProcessType r => r
hostid :: ProcessType r => r
head' :: ProcessType r => r
groups :: ProcessType r => r
fold :: ProcessType r => r
fmt :: ProcessType r => r
factor :: ProcessType r => r
expr :: ProcessType r => r
expand :: ProcessType r => r
env :: ProcessType r => r
du :: ProcessType r => r
dirname :: ProcessType r => r
dircolors :: ProcessType r => r
cut :: ProcessType r => r
csplit :: ProcessType r => r
comm :: ProcessType r => r
cksum :: ProcessType r => r
chcon :: ProcessType r => r
basename :: ProcessType r => r
base64 :: ProcessType r => r
base32 :: ProcessType r => r
b2sum :: ProcessType r => r
arch :: ProcessType r => r
clearConsole :: ProcessType r => r
bashbug :: ProcessType r => r
aptMark :: ProcessType r => r
aptKey :: ProcessType r => r
aptGet :: ProcessType r => r
aptConfig :: ProcessType r => r
aptCdrom :: ProcessType r => r
aptCache :: ProcessType r => r
apt :: ProcessType r => r
awk :: ProcessType r => r
nawk :: ProcessType r => r
which :: ProcessType r => r
touch :: ProcessType r => r
pager :: ProcessType r => r
lzma :: ProcessType r => r
unlzma :: ProcessType r => r
lzcat :: ProcessType r => r
lzmore :: ProcessType r => r
lzless :: ProcessType r => r
lzdiff :: ProcessType r => r
lzcmp :: ProcessType r => r
lzgrep :: ProcessType r => r
lzegrep :: ProcessType r => r
lzfgrep :: ProcessType r => r
fakeroot :: ProcessType r => r
cc :: ProcessType r => r
c89 :: ProcessType r => r
c99 :: ProcessType r => r
c :: ProcessType r => r
bsdFrom :: ProcessType r => r
bsdWrite :: ProcessType r => r
calendar :: ProcessType r => r
col :: ProcessType r => r
colcrt :: ProcessType r => r
colrm :: ProcessType r => r
column :: ProcessType r => r
hexdump :: ProcessType r => r
look :: ProcessType r => r
lorder :: ProcessType r => r
ncal :: ProcessType r => r
printerbanner :: ProcessType r => r
ul :: ProcessType r => r
cal :: ProcessType r => r
hd :: ProcessType r => r
eqn :: ProcessType r => r
groff :: ProcessType r => r
grog :: ProcessType r => r
grops :: ProcessType r => r
grotty :: ProcessType r => r
neqn :: ProcessType r => r
nroff :: ProcessType r => r
pic :: ProcessType r => r
preconv :: ProcessType r => r
soelim :: ProcessType r => r
tbl :: ProcessType r => r
troff :: ProcessType r => r
geqn :: ProcessType r => r
gpic :: ProcessType r => r
gtbl :: ProcessType r => r
catman :: ProcessType r => r
lexgrog :: ProcessType r => r
man :: ProcessType r => r
mandb :: ProcessType r => r
manpath :: ProcessType r => r
whatis :: ProcessType r => r
apropos :: ProcessType r => r
ncurses5Config :: ProcessType r => r
ghc822 :: ProcessType r => r
ghcPkg822 :: ProcessType r => r
ghci822 :: ProcessType r => r
haddockGhc822 :: ProcessType r => r
hpc :: ProcessType r => r
hsc2hs :: ProcessType r => r
runghc822 :: ProcessType r => r
ghc :: ProcessType r => r
ghcPkg :: ProcessType r => r
ghci :: ProcessType r => r
haddock :: ProcessType r => r
runghc :: ProcessType r => r
lnstat :: ProcessType r => r
nstat :: ProcessType r => r
rdma :: ProcessType r => r
routef :: ProcessType r => r
routel :: ProcessType r => r
ctstat :: ProcessType r => r
rtstat :: ProcessType r => r
file :: ProcessType r => r
envsubst :: ProcessType r => r
gettext :: ProcessType r => r
gettextsh :: ProcessType r => r
ngettext :: ProcessType r => r
wget :: ProcessType r => r
m4 :: ProcessType r => r
autoconf :: ProcessType r => r
autoheader :: ProcessType r => r
autom4te :: ProcessType r => r
autoreconf :: ProcessType r => r
autoscan :: ProcessType r => r
autoupdate :: ProcessType r => r
ifnames :: ProcessType r => r
dhAutotoolsDevRestoreconfig :: ProcessType r => r
dhAutotoolsDevUpdateconfig :: ProcessType r => r
aclocal115 :: ProcessType r => r
automake115 :: ProcessType r => r
autopoint :: ProcessType r => r
cdbsEditPatch :: ProcessType r => r
grepDctrl :: ProcessType r => r
joinDctrl :: ProcessType r => r
sortDctrl :: ProcessType r => r
tblDctrl :: ProcessType r => r
grepAptavail :: ProcessType r => r
grepAvailable :: ProcessType r => r
grepDebtags :: ProcessType r => r
grepStatus :: ProcessType r => r
libtoolize :: ProcessType r => r
dhAutoreconf :: ProcessType r => r
dhAutoreconfClean :: ProcessType r => r
crc32 :: ProcessType r => r
dhStripNondeterminism :: ProcessType r => r
gettextize :: ProcessType r => r
msgattrib :: ProcessType r => r
msgcat :: ProcessType r => r
msgcmp :: ProcessType r => r
msgcomm :: ProcessType r => r
msgconv :: ProcessType r => r
msgen :: ProcessType r => r
msgexec :: ProcessType r => r
msgfilter :: ProcessType r => r
msgfmt :: ProcessType r => r
msggrep :: ProcessType r => r
msginit :: ProcessType r => r
msgmerge :: ProcessType r => r
msgunfmt :: ProcessType r => r
msguniq :: ProcessType r => r
recodeSrLatin :: ProcessType r => r
xgettext :: ProcessType r => r
debconfGettextize :: ProcessType r => r
debconfUpdatepo :: ProcessType r => r
po2debconf :: ProcessType r => r
podebconfDisplayPo :: ProcessType r => r
podebconfReportPo :: ProcessType r => r
dh :: ProcessType r => r
dhAutoBuild :: ProcessType r => r
dhAutoClean :: ProcessType r => r
dhAutoConfigure :: ProcessType r => r
dhAutoInstall :: ProcessType r => r
dhAutoTest :: ProcessType r => r
dhBugfiles :: ProcessType r => r
dhBuilddeb :: ProcessType r => r
dhClean :: ProcessType r => r
dhCompress :: ProcessType r => r
dhDwz :: ProcessType r => r
dhFixperms :: ProcessType r => r
dhGconf :: ProcessType r => r
dhGencontrol :: ProcessType r => r
dhIcons :: ProcessType r => r
dhInstall :: ProcessType r => r
dhInstallcatalogs :: ProcessType r => r
dhInstallchangelogs :: ProcessType r => r
dhInstallcron :: ProcessType r => r
dhInstalldeb :: ProcessType r => r
dhInstalldebconf :: ProcessType r => r
dhInstalldirs :: ProcessType r => r
dhInstalldocs :: ProcessType r => r
dhInstallemacsen :: ProcessType r => r
dhInstallexamples :: ProcessType r => r
dhInstallgsettings :: ProcessType r => r
dhInstallifupdown :: ProcessType r => r
dhInstallinfo :: ProcessType r => r
dhInstallinit :: ProcessType r => r
dhInstalllogcheck :: ProcessType r => r
dhInstalllogrotate :: ProcessType r => r
dhInstallman :: ProcessType r => r
dhInstallmanpages :: ProcessType r => r
dhInstallmenu :: ProcessType r => r
dhInstallmime :: ProcessType r => r
dhInstallmodules :: ProcessType r => r
dhInstallpam :: ProcessType r => r
dhInstallppp :: ProcessType r => r
dhInstallsystemd :: ProcessType r => r
dhInstalludev :: ProcessType r => r
dhInstallwm :: ProcessType r => r
dhInstallxfonts :: ProcessType r => r
dhLink :: ProcessType r => r
dhLintian :: ProcessType r => r
dhListpackages :: ProcessType r => r
dhMakeshlibs :: ProcessType r => r
dhMd5sums :: ProcessType r => r
dhMissing :: ProcessType r => r
dhMovefiles :: ProcessType r => r
dhPerl :: ProcessType r => r
dhPrep :: ProcessType r => r
dhShlibdeps :: ProcessType r => r
dhStrip :: ProcessType r => r
dhSystemdEnable :: ProcessType r => r
dhSystemdStart :: ProcessType r => r
dhTestdir :: ProcessType r => r
dhTestroot :: ProcessType r => r
dhUcf :: ProcessType r => r
dhUpdateAutotoolsConfig :: ProcessType r => r
dhUsrlocal :: ProcessType r => r
dhBuildinfo :: ProcessType r => r
git :: ProcessType r => r
gitShell :: ProcessType r => r
gitUploadPack :: ProcessType r => r
gitReceivePack :: ProcessType r => r
gitUploadArchive :: ProcessType r => r
asc2xml :: ProcessType r => r
hxaddid :: ProcessType r => r
hxcite :: ProcessType r => r
hxciteMkbib :: ProcessType r => r
hxclean :: ProcessType r => r
hxcopy :: ProcessType r => r
hxcount :: ProcessType r => r
hxextract :: ProcessType r => r
hxincl :: ProcessType r => r
hxindex :: ProcessType r => r
hxmkbib :: ProcessType r => r
hxmultitoc :: ProcessType r => r
hxname2id :: ProcessType r => r
hxnormalize :: ProcessType r => r
hxnsxml :: ProcessType r => r
hxnum :: ProcessType r => r
hxpipe :: ProcessType r => r
hxprintlinks :: ProcessType r => r
hxprune :: ProcessType r => r
hxref :: ProcessType r => r
hxremove :: ProcessType r => r
hxselect :: ProcessType r => r
hxtabletrans :: ProcessType r => r
hxtoc :: ProcessType r => r
hxuncdata :: ProcessType r => r
hxunent :: ProcessType r => r
hxunpipe :: ProcessType r => r
hxunxmlns :: ProcessType r => r
hxwls :: ProcessType r => r
hxxmlns :: ProcessType r => r
xml2asc :: ProcessType r => r
dhHaskellBlurbs :: ProcessType r => r
dhHaskellDepends :: ProcessType r => r
dhHaskellExtraDepends :: ProcessType r => r
dhHaskellProvides :: ProcessType r => r
dhHaskellShlibdeps :: ProcessType r => r
hspecDiscover :: ProcessType r => r
write :: ProcessType r => r
from :: ProcessType r => r
runhaskell :: ProcessType r => r
haskellCompiler :: ProcessType r => r
automake :: ProcessType r => r
aclocal :: ProcessType r => r
updateCaCertificates :: ProcessType r => r
zgPolicyRcd :: ProcessType r => r
rtcwake :: ProcessType r => r
readprofile :: ProcessType r => r
ldattach :: ProcessType r => r
fdformat :: ProcessType r => r
chmem :: ProcessType r => r
tzconfig :: ProcessType r => r
tarcat :: ProcessType r => r
rmtTar :: ProcessType r => r
vigr :: ProcessType r => r
cpgr :: ProcessType r => r
vipw :: ProcessType r => r
usermod :: ProcessType r => r
userdel :: ProcessType r => r
useradd :: ProcessType r => r
pwunconv :: ProcessType r => r
pwconv :: ProcessType r => r
pwck :: ProcessType r => r
newusers :: ProcessType r => r
grpunconv :: ProcessType r => r
grpconv :: ProcessType r => r
grpck :: ProcessType r => r
groupmod :: ProcessType r => r
groupmems :: ProcessType r => r
groupdel :: ProcessType r => r
groupadd :: ProcessType r => r
cppw :: ProcessType r => r
chpasswd :: ProcessType r => r
chgpasswd :: ProcessType r => r
nologin :: ProcessType r => r
pamGetenv :: ProcessType r => r
pamAuthUpdate :: ProcessType r => r
pamTimestampCheck :: ProcessType r => r
updateRcd :: ProcessType r => r
service :: ProcessType r => r
invokeRcd :: ProcessType r => r
zic :: ProcessType r => r
iconvconfig :: ProcessType r => r
mklostfound :: ProcessType r => r
filefrag :: ProcessType r => r
e4defrag :: ProcessType r => r
e4crypt :: ProcessType r => r
e2freefrag :: ProcessType r => r
removeShell :: ProcessType r => r
addShell :: ProcessType r => r
dpkgReconfigure :: ProcessType r => r
dpkgPreconfigure :: ProcessType r => r
chroot :: ProcessType r => r
updatePasswd :: ProcessType r => r
delgroup :: ProcessType r => r
addgroup :: ProcessType r => r
deluser :: ProcessType r => r
adduser :: ProcessType r => r
rmt :: ProcessType r => r
accessdb :: ProcessType r => r
arpd :: ProcessType r => r
genl :: ProcessType r => r
syncAvailable :: ProcessType r => r
policyRcd :: ProcessType r => r


-- | Shell scripting with Conduit
--   
--   This module consists only of re-exports, including a few thousand
--   top-level names based on <tt>PATH</tt>. If you don't want that, you
--   can cherry-pick specific modules to import from the library.
--   
--   See <a>Data.Conduit.Shell.PATH</a> for all binaries. But you should be
--   able to use whatever executables are in your <tt>PATH</tt> when the
--   library is compiled.
--   
--   <h2>Examples</h2>
--   
--   The monad instance of Conduit will simply pass along all stdout
--   results:
--   
--   Piping with Conduit's normal pipe will predictably pipe things
--   together, as in Bash:
--   
--   <pre>
--   &gt;&gt;&gt; run (do shell "echo Hello" $| sed "s/l/a/"; echo "OK!")
--   Healo
--   OK!
--   </pre>
--   
--   Streaming pipes (aka lazy pipes) is also possible:
--   
--   <pre>
--   &gt;&gt;&gt; run (tail' "/tmp/foo.txt" "-f" $| grep "--line-buffered" "Hello")
--   Hello, world!
--   Oh, hello!
--   </pre>
--   
--   (Remember that <tt>grep</tt> needs <tt>--line-buffered</tt> if it is
--   to output things line-by-line).
--   
--   Run custom processes via the <tt>proc</tt> function:
--   
--   <pre>
--   &gt;&gt;&gt; run (proc "ls" [])
--   dist  LICENSE  README.md  Setup.hs  shell-conduit.cabal  src  TAGS  TODO.org
--   </pre>
--   
--   Run shell commands via the <tt>shell</tt> function:
--   
--   <pre>
--   &gt;&gt;&gt; run (shell "ls")
--   dist  LICENSE  README.md  Setup.hs  shell-conduit.cabal  src  TAGS  TODO.org
--   </pre>
--   
--   Run conduits via the <tt>conduit</tt> function:
--   
--   <pre>
--   &gt;&gt;&gt; run (cat "/tmp/foo.txt" $| conduit (do Just x &lt;- await; yield x))
--   Hello!
--   </pre>
--   
--   <h2>How it works</h2>
--   
--   All executable names in the <tt>PATH</tt> at compile-time are brought
--   into scope as runnable process conduits e.g. <tt>ls</tt> or
--   <tt>grep</tt>.
--   
--   All processes are bound as variadic process calling functions, like
--   this:
--   
--   <pre>
--   rmdir :: ProcessType r =&gt; r
--   ls :: ProcessType r =&gt; r
--   </pre>
--   
--   But ultimately the types end up being:
--   
--   <pre>
--   rmdir "foo" :: Segment ()
--   ls :: Segment ()
--   ls "." :: Segment ()
--   </pre>
--   
--   Etc.
--   
--   Run all shell scripts with <a>run</a>:
--   
--   <pre>
--   run :: Segment r -&gt; IO r
--   </pre>
--   
--   <h2>String types</h2>
--   
--   If using <tt>OverloadedStrings</tt> so that you can use <tt>Text</tt>
--   for arguments, then also enable <tt>ExtendedDefaultRules</tt>,
--   otherwise you'll get ambiguous type errors.
--   
--   <pre>
--   {--}
--   </pre>
--   
--   But this isn't necessary if you don't need to use <tt>Text</tt> yet.
--   Strings literals will be interpreted as <a>String</a>. Though you can
--   pass a value of type <tt>Text</tt> or any instance of <a>CmdArg</a>
--   without needing conversions.
module Data.Conduit.Shell

-- | Run a segment.
run :: Segment r -> IO r

-- | Run a shell command.
shell :: String -> Segment ()

-- | Run a process command.
proc :: String -> [String] -> Segment ()

-- | Lift a conduit into a segment.
conduit :: (a ~ ByteString, m ~ IO) => ConduitT a ByteString m r -> Segment r

-- | Work on the stream as <a>Text</a> values from UTF-8.
text :: (r ~ (), m ~ IO) => ConduitT Text Text m r -> Segment r

-- | Lift a conduit into a segment.
bytes :: (a ~ ByteString, m ~ IO) => ConduitT a ByteString m r -> Segment r

-- | Fuse two segments (either processes or conduits).
($|) :: Segment () -> Segment b -> Segment b
infixl 0 $|

-- | A pipeable segment. Either a conduit or a process.
data Segment r

-- | Process running exception.
data ProcessException
ProcessException :: CreateProcess -> ExitCode -> ProcessException
ProcessEmpty :: ProcessException
