| Safe Haskell | None |
|---|
Development.Shake.Command
Description
Deprecated: This module should no longer be imported as all the functions are available directly from Development.Shake. In future versions this module will be removed.
- command :: CmdResult r => [CmdOption] -> String -> [String] -> Action r
- command_ :: [CmdOption] -> String -> [String] -> Action ()
- cmd :: CmdArguments args => args :-> Action r
- newtype Stdout = Stdout {
- fromStdout :: String
- newtype Stderr = Stderr {
- fromStderr :: String
- newtype Exit = Exit {}
- class CmdResult a
- data CmdOption
- = Cwd FilePath
- | Env [(String, String)]
- | Stdin String
- | Shell
- | BinaryPipes
- | Traced String
- | WithStderr Bool
- | EchoStdout Bool
- | EchoStderr Bool
Documentation
command :: CmdResult r => [CmdOption] -> String -> [String] -> Action rSource
Execute a system command. Before running command make sure you need any files
that are required by the command.
This function takes a list of options (often just [], see CmdOption for the available
options), the name of the executable (either a full name, or a program on the $PATH) and
a list of arguments. The result is often (), but can be a tuple containg any of Stdout,
Stderr and Exit. Some examples:
command_[] "gcc" ["-c","myfile.c"] -- compile a file, throwing an exception on failureExitc <-command[] "gcc" ["-c",myfile] -- run a command, recording the exit code (Exitc,Stderrerr) <-command[] "gcc" ["-c","myfile.c"] -- run a command, recording the exit code and error outputStdoutout <-command[] "gcc" ["-MM","myfile.c"] -- run a command, recording the outputcommand_[Cwd"generated"] "gcc" ["-c",myfile] -- run a command in a directory
Unless you retrieve the ExitCode using Exit, any ExitFailure will throw an error, including
the Stderr in the exception message. If you capture the Stdout or Stderr, that stream will not be echoed to the console,
unless you use the option EchoStdout or EchoStderr.
If you use command inside a do block and do not use the result, you may get a compile-time error about being
unable to deduce CmdResult. To avoid this error, use command_.
cmd :: CmdArguments args => args :-> Action rSource
A variable arity version of command.
-
Stringarguments are treated as whitespace separated arguments. -
[String]arguments are treated as literal arguments. -
CmdOptionarguments are used as options.
To take the examples from command:
() <-cmd"gcc -c myfile.c" -- compile a file, throwing an exception on failureExitc <-cmd"gcc -c" [myfile] -- run a command, recording the exit code (Exitc,Stderrerr) <-cmd"gcc -c myfile.c" -- run a command, recording the exit code and error outputStdoutout <-cmd"gcc -MM myfile.c" -- run a command, recording the outputcmd(Cwd"generated") "gcc -c" [myfile] ::Action() -- run a command in a directory
When passing file arguments we use [myfile] so that if the myfile variable contains spaces they are properly escaped.
If you use cmd inside a do block and do not use the result, you may get a compile-time error about being
unable to deduce CmdResult. To avoid this error, bind the result to (), or include a type signature.
Collect the stdout of the process.
If you are collecting the stdout, it will not be echoed to the terminal, unless you include EchoStdout.
Constructors
| Stdout | |
Fields
| |
Collect the stderr of the process.
If you are collecting the stderr, it will not be echoed to the terminal, unless you include EchoStderr.
Constructors
| Stderr | |
Fields
| |
Collect the ExitCode of the process.
If you do not collect the exit code, any ExitFailure will cause an exception.
Constructors
| Cwd FilePath | Change the current directory in the spawned process. By default uses this processes current directory. |
| Env [(String, String)] | Change the environment variables in the spawned process. By default uses this processes environment. |
| Stdin String | Given as the |
| Shell | Pass the command to the shell without escaping - any arguments will be joined with spaces. By default arguments are escaped properly. |
| BinaryPipes | Treat the |
| Traced String | Name to use with |
| WithStderr Bool | Should I include the |
| EchoStdout Bool | Should I echo the |
| EchoStderr Bool | Should I echo the |