tasks/ext/PatchTask.php
Patches a file by applying a 'diff' file to it
Requires "patch" to be on the execution path.
Based on Apache Ant PatchTask:
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
\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
- $Revision: 912 $
Constants
Properties

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

string
$description= ''
- Type
- string
- Inherited_from
- \Task::$description

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

\Location
$location= ''
- Type
- \Location
- Inherited_from
- \Task::$location

\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
\Target
$target= ''
- Type
- \Target
- Inherited_from
- \Task::$target

string
$taskName= ''
- Type
- string
- Inherited_from
- \Task::$taskName

string
$taskType= ''
- Type
- string
- Inherited_from
- \Task::$taskType

\RuntimeConfigurable
$wrapper= ''
- Type
- \RuntimeConfigurable
- Inherited_from
- \Task::$wrapper
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. |

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
@param string $msg The message to be logged.
| 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()| 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(
$name
)
:
string
| Name | Type | Description |
|---|---|---|
| $name |
| 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) |