Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides ByteString
analogs of several utilities in
Turtle.Prelude. The main difference is that the chunks of bytes read by
these utilities are not necessarily aligned to line boundaries.
- stdin :: Shell ByteString
- input :: FilePath -> Shell ByteString
- inhandle :: Handle -> Shell ByteString
- stdout :: MonadIO io => Shell ByteString -> io ()
- output :: MonadIO io => FilePath -> Shell ByteString -> io ()
- outhandle :: MonadIO io => Handle -> Shell ByteString -> io ()
- append :: MonadIO io => FilePath -> Shell ByteString -> io ()
- stderr :: MonadIO io => Shell ByteString -> io ()
- strict :: MonadIO io => Shell ByteString -> io ByteString
- proc :: MonadIO io => Text -> [Text] -> Shell ByteString -> io ExitCode
- shell :: MonadIO io => Text -> Shell ByteString -> io ExitCode
- system :: MonadIO io => CreateProcess -> Shell ByteString -> io ExitCode
- procs :: MonadIO io => Text -> [Text] -> Shell ByteString -> io ()
- shells :: MonadIO io => Text -> Shell ByteString -> io ()
- inproc :: Text -> [Text] -> Shell ByteString -> Shell ByteString
- inshell :: Text -> Shell ByteString -> Shell ByteString
- inprocWithErr :: Text -> [Text] -> Shell ByteString -> Shell (Either ByteString ByteString)
- inshellWithErr :: Text -> Shell ByteString -> Shell (Either ByteString ByteString)
- procStrict :: MonadIO io => Text -> [Text] -> Shell ByteString -> io (ExitCode, ByteString)
- shellStrict :: MonadIO io => Text -> Shell ByteString -> io (ExitCode, ByteString)
- procStrictWithErr :: MonadIO io => Text -> [Text] -> Shell ByteString -> io (ExitCode, ByteString, ByteString)
- shellStrictWithErr :: MonadIO io => Text -> Shell ByteString -> io (ExitCode, ByteString, ByteString)
Byte operations
stdin :: Shell ByteString Source #
Read chunks of bytes from standard input
The chunks are not necessarily aligned to line boundaries
input :: FilePath -> Shell ByteString Source #
Read chunks of bytes from a file
The chunks are not necessarily aligned to line boundaries
inhandle :: Handle -> Shell ByteString Source #
Read chunks of bytes from a Handle
The chunks are not necessarily aligned to line boundaries
stdout :: MonadIO io => Shell ByteString -> io () Source #
Stream chunks of bytes to standard output
The chunks are not necessarily aligned to line boundaries
output :: MonadIO io => FilePath -> Shell ByteString -> io () Source #
Stream chunks of bytes to a file
The chunks do not need to be aligned to line boundaries
outhandle :: MonadIO io => Handle -> Shell ByteString -> io () Source #
Stream chunks of bytes to a Handle
The chunks do not need to be aligned to line boundaries
append :: MonadIO io => FilePath -> Shell ByteString -> io () Source #
Append chunks of bytes to append to a file
The chunks do not need to be aligned to line boundaries
stderr :: MonadIO io => Shell ByteString -> io () Source #
Stream chunks of bytes to standard error
The chunks do not need to be aligned to line boundaries
strict :: MonadIO io => Shell ByteString -> io ByteString Source #
Read in a stream's contents strictly
Subprocess management
:: MonadIO io | |
=> Text | Command |
-> [Text] | Arguments |
-> Shell ByteString | Chunks of bytes written to process input |
-> io ExitCode | Exit code |
Run a command using execvp
, retrieving the exit code
The command inherits stdout
and stderr
for the current process
:: MonadIO io | |
=> Text | Command line |
-> Shell ByteString | Chunks of bytes written to process input |
-> io ExitCode | Exit code |
Run a command line using the shell, retrieving the exit code
This command is more powerful than proc
, but highly vulnerable to code
injection if you template the command line with untrusted input
The command inherits stdout
and stderr
for the current process
:: MonadIO io | |
=> CreateProcess | Command |
-> Shell ByteString | Chunks of bytes written to process input |
-> io ExitCode | Exit code |
:: MonadIO io | |
=> Text | Command |
-> [Text] | Arguments |
-> Shell ByteString | Chunks of bytes written to process input |
-> io () |
This function is identical to proc
except this throws ProcFailed
for
non-zero exit codes
:: MonadIO io | |
=> Text | Command line |
-> Shell ByteString | Chunks of bytes written to process input |
-> io () | Exit code |
This function is identical to shell
except this throws ShellFailed
for
non-zero exit codes
:: Text | Command |
-> [Text] | Arguments |
-> Shell ByteString | Chunks of bytes written to process input |
-> Shell ByteString | Chunks of bytes read from process output |
Run a command using execvp
, streaming stdout
as chunks of ByteString
The command inherits stderr
for the current process
:: Text | Command line |
-> Shell ByteString | Chunks of bytes written to process input |
-> Shell ByteString | Chunks of bytes read from process output |
Run a command line using the shell, streaming stdout
as chunks of
ByteString
This command is more powerful than inproc
, but highly vulnerable to code
injection if you template the command line with untrusted input
The command inherits stderr
for the current process
:: Text | Command |
-> [Text] | Arguments |
-> Shell ByteString | Chunks of bytes written to process input |
-> Shell (Either ByteString ByteString) |
Run a command using the shell, streaming stdout
and stderr
as chunks of
ByteString
. Chunks from stdout
are wrapped in Right
and chunks from
stderr
are wrapped in Left
. This does not throw an exception if the
command returns a non-zero exit code
:: Text | Command line |
-> Shell ByteString | Chunks of bytes written to process input |
-> Shell (Either ByteString ByteString) |
Run a command line using the shell, streaming stdout
and stderr
as
chunks of ByteString
. Chunks from stdout
are wrapped in Right
and
chunks from stderr
are wrapped in Left
. This does not throw an
exception if the command returns a non-zero exit code
This command is more powerful than inprocWithErr
, but highly vulnerable to
code injection if you template the command line with untrusted input
:: MonadIO io | |
=> Text | Command |
-> [Text] | Arguments |
-> Shell ByteString | Chunks of bytes written to process input |
-> io (ExitCode, ByteString) | Exit code and stdout |
Run a command using execvp
, retrieving the exit code and stdout as a
non-lazy blob of Text
The command inherits stderr
for the current process
:: MonadIO io | |
=> Text | Command line |
-> Shell ByteString | Chunks of bytes written to process input |
-> io (ExitCode, ByteString) | Exit code and stdout |
Run a command line using the shell, retrieving the exit code and stdout as a non-lazy blob of Text
This command is more powerful than proc
, but highly vulnerable to code
injection if you template the command line with untrusted input
The command inherits stderr
for the current process
:: MonadIO io | |
=> Text | Command |
-> [Text] | Arguments |
-> Shell ByteString | Chunks of bytes written to process input |
-> io (ExitCode, ByteString, ByteString) | (Exit code, stdout, stderr) |
Run a command using execvp
, retrieving the exit code, stdout, and stderr
as a non-lazy blob of Text
:: MonadIO io | |
=> Text | Command line |
-> Shell ByteString | Chunks of bytes written to process input |
-> io (ExitCode, ByteString, ByteString) | (Exit code, stdout, stderr) |
Run a command line using the shell, retrieving the exit code, stdout, and stderr as a non-lazy blob of Text
This command is more powerful than proc
, but highly vulnerable to code
injection if you template the command line with untrusted input