B.19 ExecTask

Executes a shell command. You can use this to quickly add a new command to Phing. However, if you want to use this regularly, you should think about writing a Task for it.

Table B.19: Attributes

NameTypeDescriptionDefaultRequired
commandStringThe command that is to be executed.n/aOne of the two
executableStringThe command to execute without any command line arguments.n/a
dirStringThe directory the command is to be executed in.n/aNo
outputStringWhere to direct stdout.n/aNo
errorStringWhere to direct stderr.Redirected to stdout, unless passthru is set to true.No
osStringOnly execute if the Appendix A, Fact Sheet property contains specified text.n/aNo
escapeBooleanBy default, we escape shell metacharacters before executing. Setting this to false will disable this precaution.falseNo
passthruBooleanWhether to use PHP's passthru() function instead of exec().falseNo
logoutputBooleanWhether to log returned output as MSG_INFO instead of MSG_VERBOSE.falseNo
spawnBooleanWhether to spawn unix programs to the background, redirecting stdout.falseNo
returnPropertyStringProperty name to set return value to from exec() call.n/aNo
outputPropertyStringProperty name to set output value to from exec() call.n/aNo
checkreturnBooleanWhether to check the return code of the program, throws a BuildException when returncode != 0.falseNo
levelStringControl the level at which status messages are reported. One of error, warning, info, verbose, debug.verboseNo

B.19.1 Examples

<!-- List the contents of "/home". -->
<exec command="ls -l" dir="/home" />

<!-- Start the make process in "/usr/src/php-4.0". -->
<exec command="make" dir="/usr/src/php-4.0" />

<!-- List the contents of "/tmp" out to a file. -->
<exec command="ls -l /tmp > foo.out" escape="false" />

B.19.2 Supported Nested Tags

  • arg

    Table B.20: Attributes

    NameTypeDescriptionDefaultRequired
    valueStringA single command-line argument; can contain space characters. To pass an empty argument, enclose two double quotes in single quotes ('""').n/aOne of these
    fileStringThe name of a file as a single command-line argument; will be replaced with the absolute filename of the file.n/a
    pathStringA string that will be treated as a path-like string as a single command-line argument; you can use ; or : as path separators and Phing will convert it to the platform's local conventions.n/a
    lineStringA space-delimited list of command-line arguments.n/a
    escapeBooleanForce escape for this attribute.false