ExecTask

Extends \Task

Executes a command on the shell.

Use \Project#createTask to register a new Task.

author

Andreas Aderhold [email protected]

author

Hans Lellelid [email protected]

author

Christian Weiske [email protected]

version

$Id: c3ae2b946bda5492b92a428d5bcc8537f33edb5c $

package

phing.tasks.system

Methods

__construct

__construct() 
inherited

Builds the full command to execute and stores it in $command.

buildCommand() : void
uses
Throws
\BuildException

Runs all tasks after command execution: - change working directory back - log output - verify return value

cleanup(integer $return, array $output) : void
Throws
\BuildException

Arguments

$return

integer

Return code

$output

array

Array with command output

Creates a nested <arg> tag.

createArg() : \CommandlineArgument

Response

\CommandlineArgument

Argument object

Executes the command and returns return code and output.

executeCommand() : array

Response

array

array(return code, array with output)

Returns the description of the current action.

getDescription() : string
inherited

Response

string

the description of the current action, or null if no description is available.

Query the exit value of the process.

getExitValue() : integer

Response

integer

the exit value or self::INVALID if no exit value has been received.

Returns the file/location where this task was defined.

getLocation() : \Location
inherited

Response

\Location

the file/location where this task was defined. Should not return null.

List of operating systems on which the command may be executed.

getOs() 

Restrict this execution to a single OS Family

getOsFamily() 

Returns the owning target of this task.

getOwningTarget() : \Target
inherited

Response

\Target

The target object that owns this task

Returns a reference to current project

getProject() : \Project
inherited

Response

\Project

Reference to current porject object

Returns a name

getRegisterSlot(string $slotName) : \RegisterSlot
inherited

Arguments

$slotName

string

Response

\RegisterSlot

Returns the wrapper object for runtime configuration

getRuntimeConfigurableWrapper() : \RuntimeConfigurable
inherited

Response

\RuntimeConfigurable

The wrapper object used by this task

Returns the name of task, used only for log messages

getTaskName() : string
inherited

Response

string

Name of this task

Returns the name of the task under which it was invoked, usually the XML tagname

getTaskType() : string
inherited

Response

string

The type of this task (XML Tag)

Called by the parser to let the task initialize properly.

init() 
inherited

Should throw a BuildException if something goes wrong with the build

This is abstract here, but may not be overloaded by subclasses.

Throws
\BuildException

Is this the OS the user wanted?

isValidOs() : \boolean.

Response

\boolean.

  • true if the os and osfamily attributes are null.
  • true if osfamily is set, and the os family and must match that of the current OS, according to the logic of {@link Os#isOs(String, String, String, String)}, and the result of the os attribute must also evaluate true.
  • true if os is set, and the system.property os.name is found in the os attribute,
  • false otherwise.

Logs a message with the given priority.

log(string $msg, integer $level = \Project::MSG_INFO) : void
inherited

Arguments

$msg

string

The message to be logged.

$level

integer

The message's priority at this message should have

Called by the project to let the task do it's work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running <em>phing target1 target2</em> will run all tasks in target3 twice.

main() 
inherited abstract

Should throw a BuildException if someting goes wrong with the build

This is abstract here. Must be overloaded by real tasks.

Configure this task if it hasn't been done already.

maybeConfigure() 
inherited

Perfrom this task

perform() : void
inherited
Throws
\BuildException
\Error

Prepares the command building and execution, i.e.

prepare() : void

changes to the specified directory.

Throws
\BuildException

Whether to check the return code.

setCheckreturn(boolean $checkreturn) : void

Arguments

$checkreturn

boolean

If the return code shall be checked

The command to use.

setCommand(mixed $command) : void

Arguments

$command

mixed

String or string-compatible (e.g. w/ __toString()).

Sets a description of the current action. This may be used for logging purposes.

setDescription(string $desc) 
inherited

Arguments

$desc

string

Description of the current action. May be null, indicating that no description is available.

Specify the working directory for executing this command.

setDir(\PhingFile $dir) : void

Arguments

$dir

\PhingFile

Working directory

File to which error output should be written.

setError(\PhingFile $f) : void

Arguments

$f

\PhingFile

Error log file

Whether to use escapeshellcmd() to escape command.

setEscape(boolean $escape) : void

Arguments

$escape

boolean

If the command shall be escaped or not

The executable to use.

setExecutable(mixed $executable) : void

Arguments

$executable

mixed

String or string-compatible (e.g. w/ __toString()).

Set the exit value.

setExitValue(integer $value) 

Arguments

$value

integer

exit value of the process.

Set level of log messages generated (default = verbose)

setLevel(string $level) : void
Throws
\BuildException

Arguments

$level

string

Log level

Sets the file/location where this task was defined.

setLocation(\Location $location) 
inherited

Arguments

$location

\Location

The file/location where this task was defined. Should not be null

Whether to log returned output as MSG_INFO instead of MSG_VERBOSE

setLogoutput(boolean $logOutput) : void

Arguments

$logOutput

boolean

If output shall be logged visibly

Specify OS (or multiple OS) that must match in order to execute this command.

setOs(string $os) : void

Arguments

$os

string

Operating system string (e.g. "Linux")

Restrict this execution to a single OS Family

setOsFamily(string $osFamily) 

Arguments

$osFamily

string

the family to restrict to.

File to which output should be written.

setOutput(\PhingFile $f) : void

Arguments

$f

\PhingFile

Output log file

The name of property to set to output value from exec() call.

setOutputProperty(string $prop) : void

Arguments

$prop

string

Property name

Sets the owning target this task belongs to.

setOwningTarget(\Target $target) 
inherited

Arguments

$target

\Target

Whether to use PHP's passthru() function instead of exec()

setPassthru(boolean $passthru) : void

Arguments

$passthru

boolean

If passthru shall be used

References the project to the current component.

setProject(\Project $project) : void
inherited

Arguments

$project

\Project

The reference to the current project

The name of property to set to return value from exec() call.

setReturnProperty(string $prop) : void

Arguments

$prop

string

Property name

Sets the wrapper object this task should use for runtime configurable elements.

setRuntimeConfigurableWrapper(\RuntimeConfigurable $wrapper) 
inherited

Arguments

$wrapper

\RuntimeConfigurable

The wrapper object this task should use

Whether to suppress all output and run in the background.

setSpawn(boolean $spawn) : void

Arguments

$spawn

boolean

If the command is to be run in the background

Sets the name of this task for log messages

setTaskName(string $name) 
inherited

Arguments

$name

string

Sets the type of the task. Usually this is the name of the XML tag

setTaskType(string $name) 
inherited

Arguments

$name

string

The type of this task (XML Tag)

Constants

INVALID

INVALID

Properties

exitValue

exitValue : 

Type(s)

Command to be executed

realCommand : string
var

Type(s)

string

Given command

command : string
var

Type(s)

string

Commandline managing object

commandline : \Commandline
var

Type(s)

\Commandline

Working directory.

dir : \PhingFile
var

Type(s)

\PhingFile

currdir

currdir : 

Type(s)

Operating system.

os : string
var

Type(s)

string

Whether to escape shell command using escapeshellcmd().

escape : boolean
var

Type(s)

boolean

Where to direct output.

output : \PhingFile
var

Type(s)

\PhingFile

Whether to use PHP's passthru() function instead of exec()

passthru : boolean
var

Type(s)

boolean

Whether to log returned output as MSG_INFO instead of MSG_VERBOSE

logOutput : boolean
var

Type(s)

boolean

Logging level for status messages

logLevel : integer
var

Type(s)

integer

Where to direct error output.

error : \PhingFile
var

Type(s)

\PhingFile

If spawn is set then [unix] programs will redirect stdout and add '&'.

spawn : boolean
var

Type(s)

boolean

Property name to set with return value from exec call.

returnProperty : string
var

Type(s)

string

Property name to set with output value from exec call.

outputProperty : string
var

Type(s)

string

Whether to check the return code.

checkreturn : boolean
var

Type(s)

boolean

osFamily

osFamily : 

Type(s)

Owning Target object

target : \Target
inherited
var

Type(s)

\Target

Internal taskname (req)

taskType : string
inherited
var

Type(s)

string

Taskname for logger

taskName : string
inherited
var

Type(s)

string

Wrapper of the task

wrapper : \RuntimeConfigurable
inherited
var

Type(s)

\RuntimeConfigurable

Holds a reference to the project that a project component (a task, a target, etc.) belongs to

project : \Project
inherited
var

A reference to the current project instance

Type(s)

\Project

location

location : \Location
inherited
var

Type(s)

\Location

description

description : string
inherited
var

Type(s)

string