tasks/ext/PatchTask.php
\PatchTask
Patches a file by applying a 'diff' file to it
Requires "patch" to be on the execution path.
- Parent(s)
- \Task < \ProjectComponent
- Author
- Andreas Aderhold
- Copyright
- 2001,2002 THYRELL. All rights reserved
- Version
- $Id$
Constants
Properties

array
$cmdArgs= 'array()'
Command line arguments for patch binary
array()Details- Type
- array

bool
$haltOnFailure= 'false'
Halt on error return value from patch invocation.
falseDetails- Type
- bool

\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
Methods

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 |

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 task method
Should throw a BuildException if someting goes wrong with the build
This is abstract here. Must be overloaded by real tasks.
| Exception | Description |
|---|---|
| \BuildException | when it all goes a bit pear shaped |

maybeConfigure(
)
:
voidConfigure this task if it hasn't been done already.
Inherited from: \Task::maybeConfigure()
setBackups(
bool $backups
)
:
voidFlag to create backups
Optional, default - false
| Name | Type | Description |
|---|---|---|
| $backups | bool | If true create backups |

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

setDestFile(
string $file
)
:
voidThe name of a file to send the output to, instead of patching the file(s) in place
Optional.
| Name | Type | Description |
|---|---|---|
| $file | string | File to send the output to |

setDir(
string $directory
)
:
voidThe directory to run the patch command in
Defaults to the project's base directory.
| Name | Type | Description |
|---|---|---|
| $directory | string | Directory to run the patch command in |

setForward(
bool $flag
)
:
voidIgnore patches that seem to be reversed or already applied
| Name | Type | Description |
|---|---|---|
| $flag | bool | If true set the -N (--forward) option |

setFuzz(
string $value
)
:
voidSet the maximum fuzz factor
Defaults to 0
| Name | Type | Description |
|---|---|---|
| $value | string | Value of a fuzz factor |

setHaltOnFailure(
bool $value
)
:
voidIf true, stop the build process if the patch command exits with an error status.
The default is "false"
| Name | Type | Description |
|---|---|---|
| $value | bool | "true" if it should halt, otherwise "false" |

setIgnoreWhiteSpace(
bool $ignore
)
:
voidFlag to ignore whitespace differences;
Default - false
| Name | Type | Description |
|---|---|---|
| $ignore | bool | If true ignore whitespace differences |

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. |

setOriginalFile(
string $file
)
:
voidThe file to patch
Optional if it can be inferred from the diff file.
| Name | Type | Description |
|---|---|---|
| $file | string | File to patch |

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

setPatchFile(
string $file
)
:
voidThe file containing the diff output
Required.
| Name | Type | Description |
|---|---|---|
| $file | string | File containing the diff output |
| Exception | Description |
|---|---|
| \BuildException | if $file not exists |

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 |

setQuiet(
bool $flag
)
:
voidWork silently unless an error occurs
Optional, default - false
| Name | Type | Description |
|---|---|---|
| $flag | bool | If true suppress set the -s option on the patch command |

setReverse(
bool $flag
)
:
voidAssume patch was created with old and new files swapped
Optional, default - false
| Name | Type | Description |
|---|---|---|
| $flag | bool | If true set the -R option on the patch command |

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 |

setStrip(
int $num
)
:
voidStrip the smallest prefix containing num leading slashes from filenames.
patch's --strip option.
| Name | Type | Description |
|---|---|---|
| $num | int | number of lines to strip |
| Exception | Description |
|---|---|
| \BuildException | if num is < 0, or other errors |

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) |