tasks/system/ExecTask.php
\ExecTask
Executes a command on the shell.
Use {@link Project#createTask} to register a new Task.
- Parent(s)
- \Task < \ProjectComponent
- Author
- Andreas Aderhold
- Author
- Hans Lellelid
- Author
- Christian Weiske
- Copyright
- 2001,2002 THYRELL. All rights reserved
- Version
- $Id: 3101d1403eeb4fe4fe8bae729b7d918b303de1cf $
Properties

boolean
$checkreturn= 'false'
Whether to check the return code.
falseDetails- Type
- boolean

boolean
$escape= 'false'
Whether to escape shell command using escapeshellcmd().
falseDetails- Type
- boolean

integer
$logLevel= 'Project::MSG_VERBOSE'
Logging level for status messages
Project::MSG_VERBOSEDetails- Type
- integer

boolean
$logOutput= 'false'
Whether to log returned output as MSG_INFO instead of MSG_VERBOSE
falseDetails- Type
- boolean

string
$outputProperty= ''
Property name to set with output value from exec call.
- Type
- string

boolean
$passthru= 'false'
Whether to use PHP's passthru() function instead of exec()
falseDetails- Type
- boolean

\Project
$project= 'null'
Holds a reference to the project that a project component (a task, a target, etc.) belongs to
A reference to the current project instanceInherited from: \ProjectComponent::$$project\Task::$$projectnullDetails- Type
- \Project
- Inherited_from
- \ProjectComponent::$$project
- Inherited_from
- \Task::$$project

string
$returnProperty= ''
Property name to set with return value from exec call.
- Type
- string

boolean
$spawn= 'false'
If spawn is set then [unix] programs will redirect stdout and add '&'.
falseDetails- Type
- boolean
Methods

buildCommand(
)
:
voidBuilds the full command to execute and stores it in $command.
- Uses
- \$command

cleanup(
integer $return, array $output
)
:
voidRuns all tasks after command execution: - change working directory back - log output - verify return value
| Name | Type | Description |
|---|---|---|
| $return | integer | Return code |
| $output | array | Array with command output |

createArg(
)
:
\CommandlineArgumentCreates a nested
| Type | Description |
|---|---|
| \CommandlineArgument | Argument object |

executeCommand(
)
:
arrayExecutes the command and returns return code and output.
| Type | Description |
|---|---|
| array | array(return code, array with output) |

getLocation(
)
:
\LocationReturns the location within the buildfile this task occurs. Used by {@link BuildException} to give detailed error messages.
Inherited from: \Task::getLocation()| Type | Description |
|---|---|
| \Location | The location object describing the position of this task within the buildfile. |

getProject(
)
:
\ProjectReturns a reference to current project
Inherited from: \ProjectComponent::getProject()\Task::getProject()| Type | Description |
|---|---|
| \Project | Reference to current porject object |

getRuntimeConfigurableWrapper(
)
:
\RuntimeConfigurableReturns the wrapper object for runtime configuration
Inherited from: \Task::getRuntimeConfigurableWrapper()| Type | Description |
|---|---|
| \RuntimeConfigurable | The wrapper object used by this task |

getTaskType(
)
:
stringReturns the name of the task under which it was invoked, usually the XML tagname
Inherited from: \Task::getTaskType()| Type | Description |
|---|---|
| string | The type of this task (XML Tag) |

init(
)
:
void
Should throw a BuildException if something goes wrong with the build
This is abstract here, but may not be overloaded by subclasses.
| Exception | Description |
|---|---|
| \BuildException |

isApplicable(
)
:
booleanChecks whether the command shall be executed
| Type | Description |
|---|---|
| boolean | False if the exec command shall not be run |

log(
string $msg, integer $level
=
Project::MSG_INFO
)
:
void
| Name | Type | Description |
|---|---|---|
| $msg | string | The message to log |
| $level | integer | The priority of the message |
- See
- \BuildEvent
- See
- \BuildListener

main(
)
:
voidMain method: wraps execute() command.
Should throw a BuildException if someting goes wrong with the build
This is abstract here. Must be overloaded by real tasks.

maybeConfigure(
)
:
voidConfigure this task if it hasn't been done already.
Inherited from: \Task::maybeConfigure()
prepare(
)
:
voidPrepares the command building and execution, i.e.
changes to the specified directory.

setCheckreturn(
boolean $checkreturn
)
:
voidWhether to check the return code.
| Name | Type | Description |
|---|---|---|
| $checkreturn | boolean | If the return code shall be checked |

setCommand(
mixed $command
)
:
voidThe command to use.
| Name | Type | Description |
|---|---|---|
| $command | mixed | String or string-compatible (e.g. w/ __toString()). |

setDescription(
string $desc
)
:
void
| Name | Type | Description |
|---|---|---|
| $desc | string | The text describing the task |

setDir(
\PhingFile $dir
)
:
voidSpecify the working directory for executing this command.
| Name | Type | Description |
|---|---|---|
| $dir | \PhingFile | Working directory |

setError(
\PhingFile $f
)
:
voidFile to which error output should be written.
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile | Error log file |

setEscape(
boolean $escape
)
:
voidWhether to use escapeshellcmd() to escape command.
| Name | Type | Description |
|---|---|---|
| $escape | boolean | If the command shall be escaped or not |

setExecutable(
mixed $executable
)
:
voidThe executable to use.
| Name | Type | Description |
|---|---|---|
| $executable | mixed | String or string-compatible (e.g. w/ __toString()). |

setLevel(
string $level
)
:
voidSet level of log messages generated (default = verbose)
| Name | Type | Description |
|---|---|---|
| $level | string | Log level |

setLocation(
\Location $location
)
:
voidSets the location within the buildfile this task occurs. Called by the parser to set location information.
Inherited from: \Task::setLocation()| Name | Type | Description |
|---|---|---|
| $location | \Location | The location object describing the position of this task within the buildfile. |

setLogoutput(
boolean $logOutput
)
:
voidWhether to log returned output as MSG_INFO instead of MSG_VERBOSE
| Name | Type | Description |
|---|---|---|
| $logOutput | boolean | If output shall be logged visibly |

setOs(
string $os
)
:
voidSpecify OS (or muliple OS) that must match in order to execute this command.
| Name | Type | Description |
|---|---|---|
| $os | string | Operating system string (e.g. "Linux") |

setOutput(
\PhingFile $f
)
:
voidFile to which output should be written.
| Name | Type | Description |
|---|---|---|
| $f | \PhingFile | Output log file |

setOutputProperty(
string $prop
)
:
voidThe name of property to set to output value from exec() call.
| Name | Type | Description |
|---|---|---|
| $prop | string | Property name |

setOwningTarget(
\Target $target
)
:
void
| Name | Type | Description |
|---|---|---|
| $target | \Target | Reference to owning target |

setPassthru(
boolean $passthru
)
:
voidWhether to use PHP's passthru() function instead of exec()
| Name | Type | Description |
|---|---|---|
| $passthru | boolean | If passthru shall be used |

setProject(
\Project $project
)
:
voidReferences the project to the current component.
Inherited from: \ProjectComponent::setProject()\Task::setProject()| Name | Type | Description |
|---|---|---|
| $project | \Project | The reference to the current project |

setReturnProperty(
string $prop
)
:
voidThe name of property to set to return value from exec() call.
| Name | Type | Description |
|---|---|---|
| $prop | string | Property name |

setRuntimeConfigurableWrapper(
\RuntimeConfigurable $wrapper
)
:
voidSets the wrapper object this task should use for runtime configurable elements.
Inherited from: \Task::setRuntimeConfigurableWrapper()| Name | Type | Description |
|---|---|---|
| $wrapper | \RuntimeConfigurable | The wrapper object this task should use |

setSpawn(
boolean $spawn
)
:
voidWhether to suppress all output and run in the background.
| Name | Type | Description |
|---|---|---|
| $spawn | boolean | If the command is to be run in the background |

setTaskName(
string $name
)
:
string
| Name | Type | Description |
|---|---|---|
| $name | string |
| Type | Description |
|---|---|
| string | A string representing the name of this task for log |

setTaskType(
string $name
)
:
voidSets the type of the task. Usually this is the name of the XML tag
Inherited from: \Task::setTaskType()| Name | Type | Description |
|---|---|---|
| $name | string | The type of this task (XML Tag) |