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.
false
Details- Type
- boolean


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


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


boolean
$logOutput= 'false'
Whether to log returned output as MSG_INFO instead of MSG_VERBOSE
false
Details- 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()
false
Details- 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::$$projectnull
Details- 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 '&'.
false
Details- Type
- boolean
Methods


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


cleanup(
integer $return, array $output
)
:
void
Runs 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(
)
:
\CommandlineArgument
Creates a nested
Type | Description |
---|---|
\CommandlineArgument | Argument object |


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


getLocation(
)
:
\Location
Returns 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(
)
:
\Project
Returns a reference to current project
Inherited from: \ProjectComponent::getProject()\Task::getProject()Type | Description |
---|---|
\Project | Reference to current porject object |


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


getTaskType(
)
:
string
Returns 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(
)
:
boolean
Checks 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(
)
:
void
Main 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(
)
:
void
Configure this task if it hasn't been done already.
Inherited from: \Task::maybeConfigure()

prepare(
)
:
void
Prepares the command building and execution, i.e.
changes to the specified directory.


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


setCommand(
mixed $command
)
:
void
The 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
)
:
void
Specify the working directory for executing this command.
Name | Type | Description |
---|---|---|
$dir | \PhingFile | Working directory |


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


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


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


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


setLocation(
\Location $location
)
:
void
Sets 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
)
:
void
Whether 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
)
:
void
Specify 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
)
:
void
File to which output should be written.
Name | Type | Description |
---|---|---|
$f | \PhingFile | Output log file |


setOutputProperty(
string $prop
)
:
void
The 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
)
:
void
Whether to use PHP's passthru() function instead of exec()
Name | Type | Description |
---|---|---|
$passthru | boolean | If passthru shall be used |


setProject(
\Project $project
)
:
void
References 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
)
:
void
The name of property to set to return value from exec() call.
Name | Type | Description |
---|---|---|
$prop | string | Property name |


setRuntimeConfigurableWrapper(
\RuntimeConfigurable $wrapper
)
:
void
Sets 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
)
:
void
Whether 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
)
:
void
Sets 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) |