Changeset 7508253
- Timestamp:
- 01/30/12 11:47:30 (4 months ago)
- Branches:
- master
- Children:
- 4870cff
- Parents:
- 4331305
- git-author:
- Johan Persson <johan162@…> (01/30/12 11:47:30)
- git-committer:
- Johan Persson <johan162@…> (01/30/12 11:47:30)
- Files:
-
- 4 edited
-
classes/phing/tasks/ext/XmlLintTask.php (modified) (4 diffs)
-
docs/phing_guide/book/chapters/appendixes/AppendixB-CoreTasks.html (modified) (29 diffs)
-
docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html (modified) (75 diffs)
-
docs/phing_guide/book/chapters/appendixes/AppendixD2-CoreFilters.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
classes/phing/tasks/ext/XmlLintTask.php
r487bde6 r7508253 34 34 protected $schema; // the schema file (from xml attribute) 35 35 protected $filesets = array(); // all fileset objects assigned to this task 36 protected $useRNG = false; 36 37 37 38 protected $haltonfailure = true; … … 54 55 $this->schema = $schema; 55 56 } 57 58 59 /** 60 * Use RNG instead of DTD schema validation 61 * 62 * @param bool $bool 63 */ 64 public function setUseRNG($bool) { 65 $this->useRNG = (boolean)$bool; 66 } 67 56 68 57 69 /** … … 118 130 protected function lint($file) { 119 131 if(file_exists($file)) { 120 if(is_readable($file)) { 132 if(is_readable($file)) { 121 133 $dom = new DOMDocument(); 122 134 if ($dom->load($file) === false) { … … 124 136 $this->logError($file.' is not well-formed (See messages above)'); 125 137 } else { 126 if(isset($this->schema)) { 127 if($dom->schemaValidate($this->schema->getPath())) { 128 $this->log($file.' validated', Project::MSG_INFO); 129 } else { 130 $this->logError($file.' fails to validate (See messages above)'); 131 } 132 } else { 133 $this->log($file.' is well-formed', Project::MSG_INFO); 134 } 138 if(isset($this->schema)) { 139 if( $this->useRNG ) { 140 if($dom->relaxNGValidate($this->schema->getPath())) { 141 $this->log($file.' validated with RNG grammar', Project::MSG_INFO); 142 } else { 143 $this->logError($file.' fails to validate (See messages above)'); 144 } 145 } else { 146 if($dom->schemaValidate($this->schema->getPath())) { 147 $this->log($file.' validated with schema', Project::MSG_INFO); 148 } else { 149 $this->logError($file.' fails to validate (See messages above)'); 150 } 151 } 152 } else { 153 $this->log($file.' is well-formed (not validated due to missing schema specification)', Project::MSG_INFO); 154 } 135 155 } 136 156 } else { 137 $this->logError('Permission denied : '.$file);157 $this->logError('Permission denied to read file: '.$file); 138 158 } 139 159 } else { -
docs/phing_guide/book/chapters/appendixes/AppendixB-CoreTasks.html
raaec053 r7508253 16 16 </head> 17 17 <body> 18 <h1> 19 <a name="AppendixB"></a>Appendix B: Core Tasks 20 </h1> 21 22 <p>This appendix contains a reference of all core tasks, i.e. all 23 tasks that are needed to build a basic project. If you are looking for 24 binarycloud related tasks, look in appendix ?.</p> 25 26 <p> 27 This reference lists the tasks alphabetically by the name of the 28 classes that implement the tasks. So if you are searching for the 29 reference to the 30 <code><copy></code> 31 tag, for example, you will want to look at the reference of 32 <code>CopyTask</code> 33 . 34 </p> 35 <h2> 36 <a name="AdhocTaskdefTask"></a>AdhocTaskdefTask 37 </h2> 38 <p>The AdhocTaskdefTask allows you to define a task within your 39 build file.</p> 40 <pre title="Example of how to use AdhocTaskdefTask"><target name="main"<br /> description="==>test AdhocTask "><br /> <br /> <adhoc-task name="foo"><![CDATA[<br /> class FooTest extends Task {<br /> private $bar;<br /> <br /> function setBar($bar) {<br /> $this->bar = $bar;<br /> }<br /> <br /> function main() {<br /> $this->log("In FooTest: " . $this->bar);<br /> }<br /> }<br /> ]]></adhoc-task><br /> <br /> <foo bar="B.L.I.N.G"/><br /></target></pre> 41 <p> 42 Note that you should use <![CDATA[ ... ]]> so that you don't 43 have to quote entities within your<em> 44 <adhoc-task></adhoc-task></em> tags. 45 </p> 46 <h3>Parameters</h3> 47 <table> 48 <thead> 49 <tr> 50 <th>Name</th> 51 <th>Type</th> 52 <th>Description</th> 53 <th>Default</th> 54 <th>Required</th> 55 </tr> 56 </thead> 57 <tbody> 58 <tr> 59 <td>name</td> 60 <td>String</td> 61 <td>Name of XML tag that will represent this task.</td> 62 <td>n/a</td> 63 <td>Yes</td> 64 </tr> 65 </tbody> 66 </table> 67 <h2> 68 <a name="AdhocTypedefTask"></a>AdhocTypedefTask 69 </h2> 70 <p>The AdhocTypedefTask allows you to define a datatype within your 71 build file.</p> 72 <pre title="Example of how to use AdhocTypedefTask"><target name="main"<br /> description="==>test AdhocType"><br /> <br /> <adhoc-type name="dsn"><![CDATA[<br /> class CreoleDSN extends DataType {<br /> private $url;<br /> <br /> function setUrl($url) {<br /> $this->url = $url;<br /> }<br /> <br /> function getUrl() { 18 <h1> 19 <a name="AppendixB"></a>Appendix B: Core Tasks </h1> 20 <p>This appendix contains a reference of all core tasks, i.e. all tasks that are needed to 21 build a basic project. If you are looking for binarycloud related tasks, look in 22 appendix ?.</p> 23 <p> This reference lists the tasks alphabetically by the name of the classes that implement 24 the tasks. So if you are searching for the reference to the <code><copy></code> 25 tag, for example, you will want to look at the reference of <code>CopyTask</code> . </p> 26 <h2> 27 <a name="AdhocTaskdefTask"></a>AdhocTaskdefTask </h2> 28 <p>The AdhocTaskdefTask allows you to define a task within your build file.</p> 29 <pre title="Example of how to use AdhocTaskdefTask"><target name="main"<br /> description="==>test AdhocTask "><br /> <br /> <adhoc-task name="foo"><![CDATA[<br /> class FooTest extends Task {<br /> private $bar;<br /> <br /> function setBar($bar) {<br /> $this->bar = $bar;<br /> }<br /> <br /> function main() {<br /> $this->log("In FooTest: " . $this->bar);<br /> }<br /> }<br /> ]]></adhoc-task><br /> <br /> <foo bar="B.L.I.N.G"/><br /></target></pre> 30 <p> Note that you should use <![CDATA[ ... ]]> so that you don't have to quote 31 entities within your<em> <adhoc-task></adhoc-task></em> tags. </p> 32 <h3>Parameters</h3> 33 <table> 34 <thead> 35 <tr> 36 <th>Name</th> 37 <th>Type</th> 38 <th>Description</th> 39 <th>Default</th> 40 <th>Required</th> 41 </tr> 42 </thead> 43 <tbody> 44 <tr> 45 <td>name</td> 46 <td>String</td> 47 <td>Name of XML tag that will represent this task.</td> 48 <td>n/a</td> 49 <td>Yes</td> 50 </tr> 51 </tbody> 52 </table> 53 <h2> 54 <a name="AdhocTypedefTask"></a>AdhocTypedefTask </h2> 55 <p>The AdhocTypedefTask allows you to define a datatype within your build file.</p> 56 <pre title="Example of how to use AdhocTypedefTask"><target name="main"<br /> description="==>test AdhocType"><br /> <br /> <adhoc-type name="dsn"><![CDATA[<br /> class CreoleDSN extends DataType {<br /> private $url;<br /> <br /> function setUrl($url) {<br /> $this->url = $url;<br /> }<br /> <br /> function getUrl() { 73 57 return $this->url; 74 58 } <br /> }<br /> ]]></adhoc-type><br /> … … 77 61 <dsn url="mysql://root@localhost/test"/> 78 62 </creole-sql><br /><br /></target></pre> 79 <p> 80 Note that you should use <![CDATA[ ... ]]> so that you don't 81 have to quote entities within your<em> 82 <adhoc-type></adhoc-type></em> tags. 83 </p> 84 <h3>Parameters</h3> 85 <table> 86 <thead> 87 <tr> 88 <th>Name</th> 89 <th>Type</th> 90 <th>Description</th> 91 <th>Default</th> 92 <th>Required</th> 93 </tr> 94 </thead> 95 <tbody> 96 <tr> 97 <td>name</td> 98 <td>String</td> 99 <td>Name of XML tag that will represent this datatype..</td> 100 <td>n/a</td> 101 <td>Yes</td> 102 </tr> 103 </tbody> 104 </table> 105 <h2> 106 <a name="AppendTask"></a>AppendTask 107 </h2> 108 <p>The Append Task appends text or contents of files to a specified 109 file.</p> 110 <pre title="Example of how to use AppendTask"> 63 <p> Note that you should use <![CDATA[ ... ]]> so that you don't have to quote 64 entities within your<em> <adhoc-type></adhoc-type></em> tags. </p> 65 <h3>Parameters</h3> 66 <table> 67 <thead> 68 <tr> 69 <th>Name</th> 70 <th>Type</th> 71 <th>Description</th> 72 <th>Default</th> 73 <th>Required</th> 74 </tr> 75 </thead> 76 <tbody> 77 <tr> 78 <td>name</td> 79 <td>String</td> 80 <td>Name of XML tag that will represent this datatype..</td> 81 <td>n/a</td> 82 <td>Yes</td> 83 </tr> 84 </tbody> 85 </table> 86 <h2> 87 <a name="AppendTask"></a>AppendTask </h2> 88 <p>The Append Task appends text or contents of files to a specified file.</p> 89 <pre title="Example of how to use AppendTask"> 111 90 <append destFile="${process.outputfile}"> 112 91 <filterchain> … … 117 96 <filelist dir="book/" listfile="book/PhingGuide.book"/> 118 97 </append></pre> 119 <p> 120 In the example above, AppendTask is reading a filename from <em>book/PhingGuide.book</em>, 121 processing the file contents with XSLT, and then appending the result 122 to the file located at <em>${process.outputfile}</em>. This is a real 123 example from the build file used to generate this book! 124 </p> 125 <h3>Parameters</h3> 126 <table> 127 <thead> 128 <tr> 129 <th>Name</th> 130 <th>Type</th> 131 <th>Description</th> 132 <th>Default</th> 133 <th>Required</th> 134 </tr> 135 </thead> 136 <tbody> 137 <tr> 138 <td>destFile</td> 139 <td>File</td> 140 <td>Path of file to which text should be appended.</td> 141 <td>n/a</td> 142 <td>Yes</td> 143 </tr> 144 <tr> 145 <td>file</td> 146 <td>File</td> 147 <td>Path to file that should be appended to destFile.</td> 148 <td>n/a</td> 149 <td>No</td> 150 </tr> 151 <tr> 152 <td>text</td> 153 <td>String</td> 154 <td>Some literal text to append to file.</td> 155 <td>n/a</td> 156 <td>No</td> 157 </tr> 158 </tbody> 159 </table> 160 <h3>Supported Nested Tags</h3> 161 <ul> 162 <li>FileList</li> 163 <li>FileSet</li> 164 <li>FilterChain</li> 165 </ul> 166 167 168 <h2> 169 <a name="AvailableTask"></a>AvailableTask 170 </h2> 171 172 <p>Available Task tests if a resource/file is set and sets a 173 certain property to a certain value if it exists.</p> 174 <pre title="Example of how to use AvailableTask"> 98 <p> In the example above, AppendTask is reading a filename from 99 <em>book/PhingGuide.book</em>, processing the file contents with XSLT, and then 100 appending the result to the file located at <em>${process.outputfile}</em>. This is a 101 real example from the build file used to generate this book! </p> 102 <h3>Parameters</h3> 103 <table> 104 <thead> 105 <tr> 106 <th>Name</th> 107 <th>Type</th> 108 <th>Description</th> 109 <th>Default</th> 110 <th>Required</th> 111 </tr> 112 </thead> 113 <tbody> 114 <tr> 115 <td>destFile</td> 116 <td>File</td> 117 <td>Path of file to which text should be appended.</td> 118 <td>n/a</td> 119 <td>Yes</td> 120 </tr> 121 <tr> 122 <td>file</td> 123 <td>File</td> 124 <td>Path to file that should be appended to destFile.</td> 125 <td>n/a</td> 126 <td>No</td> 127 </tr> 128 <tr> 129 <td>text</td> 130 <td>String</td> 131 <td>Some literal text to append to file.</td> 132 <td>n/a</td> 133 <td>No</td> 134 </tr> 135 </tbody> 136 </table> 137 <h3>Supported Nested Tags</h3> 138 <ul> 139 <li>FileList</li> 140 <li>FileSet</li> 141 <li>FilterChain</li> 142 </ul> 143 <h2> 144 <a name="AvailableTask"></a>AvailableTask </h2> 145 <p>Available Task tests if a resource/file is set and sets a certain property to a certain 146 value if it exists.</p> 147 <pre title="Example of how to use AvailableTask"> 175 148 <available file="/tmp/test.txt" property="test_txt_exists" value="Yes"/> 176 149 … … 179 152 <available file="/home/foo/bar" property="foo.bar" value="Well, yes" /> 180 153 </pre> 181 <p> 182 Here, <em>AvailableTask</em> first checks for the existance of either 183 file or directory named <em>test.txt</em> in <em>/tmp</em>. Then, it 184 checks for the directory <em>foo</em> in <em>/home</em> and then for 185 the file or directory <em>bar</em> in <em>/home/foo</em>. If <em>/tmp/test.txt</em> 186 is found, the property <em>test_txt_exists</em> is set to <em>"Yes"</em>, 187 if <em>/home/foo</em> is found and a directory, <em>properties.yetanother</em> 188 is set to <em>"true"</em> (default). If <em>/home/foo/bar</em> 189 exists, <em>AvailableTask</em> will set <em>foo.bar</em> to <em>"Well, 190 yes"</em>. 191 </p> 192 <p><b>NB:</b> the Available task can also be used as a <a href="../ProjectComponents.html#Conditions">condition</a>.</p> 193 <h3>Parameters</h3> 194 <table> 195 <thead> 196 <tr> 197 <th>Name</th> 198 <th>Type</th> 199 <th>Description</th> 200 <th>Default</th> 201 <th>Required</th> 202 </tr> 203 </thead> 204 <tbody> 205 <tr> 206 <td>property</td> 207 <td>string</td> 208 <td>Name of the property that is to be set.</td> 209 <td>n/a</td> 210 <td>Yes</td> 211 </tr> 212 <tr> 213 <td>value</td> 214 <td>String</td> 215 <td>The value the property is to be set to.</td> 216 <td><em>"true"</em></td> 217 <td>No</td> 218 </tr> 219 <tr> 220 <td>file</td> 221 <td>String</td> 222 <td>File/directory to check existence.</td> 223 <td>n/a</td> 224 <td>Yes (or <em>resource</em>)</td> 225 </tr> 226 <tr> 227 <td>resource</td> 228 <td>String</td> 229 <td>Path of the resource to look for.</td> 230 <td>n/a</td> 231 <td>Yes (or <em>file</em>)</td> 232 </tr> 233 <tr> 234 <td>type</td> 235 <td>String (file|dir)</td> 236 <td>Determines if <em>AvailableTask</em> should look for a file 237 or a directory at the position set by <em>file</em>. If empty, it 238 checks for either file or directory.</td> 239 <td>n/a</td> 240 <td>No</td> 241 </tr> 242 <tr> 243 <td>filepath</td> 244 <td>String</td> 245 <td>The path to use when looking up <em>file</em>.</td> 246 <td>n/a</td> 247 <td>No</td> 248 </tr> 249 <tr> 250 <td>followSymlinks</td> 251 <td>Boolean</td> 252 <td>Whether to dereference symbolic links when looking up <em>file</em>.</td> 253 <td>false</td> 254 <td>No</td> 255 </tr> 256 </tbody> 257 </table> 258 259 <h3>Supported Nested Tags</h3> 260 <ul> 261 <li>filepath</li> 262 </ul> 263 264 <h2> 265 <a name="ChmodTask"></a>ChmodTask 266 </h2> 267 <p>Sets the mode of a file or directory.</p> 268 <h3>Example</h3> 269 <pre> 154 <p> Here, <em>AvailableTask</em> first checks for the existance of either file or directory 155 named <em>test.txt</em> in <em>/tmp</em>. Then, it checks for the directory <em>foo</em> 156 in <em>/home</em> and then for the file or directory <em>bar</em> in <em>/home/foo</em>. 157 If <em>/tmp/test.txt</em> is found, the property <em>test_txt_exists</em> is set to 158 <em>"Yes"</em>, if <em>/home/foo</em> is found and a directory, 159 <em>properties.yetanother</em> is set to <em>"true"</em> (default). If 160 <em>/home/foo/bar</em> exists, <em>AvailableTask</em> will set <em>foo.bar</em> to 161 <em>"Well, yes"</em>. </p> 162 <p><b>NB:</b> the Available task can also be used as a <a 163 href="../ProjectComponents.html#Conditions">condition</a>.</p> 164 <h3>Parameters</h3> 165 <table> 166 <thead> 167 <tr> 168 <th>Name</th> 169 <th>Type</th> 170 <th>Description</th> 171 <th>Default</th> 172 <th>Required</th> 173 </tr> 174 </thead> 175 <tbody> 176 <tr> 177 <td>property</td> 178 <td>string</td> 179 <td>Name of the property that is to be set.</td> 180 <td>n/a</td> 181 <td>Yes</td> 182 </tr> 183 <tr> 184 <td>value</td> 185 <td>String</td> 186 <td>The value the property is to be set to.</td> 187 <td><em>"true"</em></td> 188 <td>No</td> 189 </tr> 190 <tr> 191 <td>file</td> 192 <td>String</td> 193 <td>File/directory to check existence.</td> 194 <td>n/a</td> 195 <td>Yes (or <em>resource</em>)</td> 196 </tr> 197 <tr> 198 <td>resource</td> 199 <td>String</td> 200 <td>Path of the resource to look for.</td> 201 <td>n/a</td> 202 <td>Yes (or <em>file</em>)</td> 203 </tr> 204 <tr> 205 <td>type</td> 206 <td>String (file|dir)</td> 207 <td>Determines if <em>AvailableTask</em> should look for a file or a directory 208 at the position set by <em>file</em>. If empty, it checks for either file or 209 directory.</td> 210 <td>n/a</td> 211 <td>No</td> 212 </tr> 213 <tr> 214 <td>filepath</td> 215 <td>String</td> 216 <td>The path to use when looking up <em>file</em>.</td> 217 <td>n/a</td> 218 <td>No</td> 219 </tr> 220 <tr> 221 <td>followSymlinks</td> 222 <td>Boolean</td> 223 <td>Whether to dereference symbolic links when looking up <em>file</em>.</td> 224 <td>false</td> 225 <td>No</td> 226 </tr> 227 </tbody> 228 </table> 229 <h3>Supported Nested Tags</h3> 230 <ul> 231 <li>filepath</li> 232 </ul> 233 <h2> 234 <a name="ChmodTask"></a>ChmodTask </h2> 235 <p>Sets the mode of a file or directory.</p> 236 <h3>Example</h3> 237 <pre> 270 238 <chmod file="test.txt" mode="0755" /> 271 239 <chmod file="/home/test" mode="0775" /> 272 240 <chmod file="/home/test/mine.txt" mode="0500" verbose="true" /> 273 241 </pre> 274 <p> 275 For more informations, see <a href="http://php.net/chmod">chmod</a> in 276 the PHP Manual. 277 </p> 278 <h3>Attributes</h3> 279 <table> 280 <thead> 281 <tr> 282 <th>Name</th> 283 <th>Type</th> 284 <th>Description</th> 285 <th>Default</th> 286 <th>Required</th> 287 </tr> 288 </thead> 289 <tbody> 290 <tr> 291 <td>file</td> 292 <td>String</td> 293 <td>The name of the file or directory. You either have to 294 specify this attribute, or use a fileset.</td> 295 <td>n/a</td> 296 <td>Yes</td> 297 </tr> 298 <tr> 299 <td>mode</td> 300 <td>String</td> 301 <td>The new mode (octal) for the file. Specified in octal, even 302 if the first digit is not a '0'.</td> 303 <td>n/a</td> 304 <td>Yes</td> 305 </tr> 306 <tr> 307 <td>quiet</td> 308 <td>Boolean</td> 309 <td>Set quiet mode, which suppresses warnings if <code>chmod()</code> 310 fails</td> 311 <td>false</td> 312 <td>No</td> 313 </tr> 314 <tr> 315 <td>failonerror</td> 316 <td>Boolean</td> 317 <td>This flag means 'note errors to the output, but keep going'</td> 318 <td>true</td> 319 <td>No</td> 320 </tr> 321 <tr> 322 <td>verbose</td> 323 <td>Boolean</td> 324 <td>Give more information in error message in case of a 325 failure</td> 326 <td>true</td> 327 <td>No</td> 328 </tr> 329 </tbody> 330 </table> 331 <h3>Supported Nested Tags</h3> 332 <ul> 333 <li>fileset</li> 334 </ul> 335 336 337 <h2> 338 <a name="ChownTask"></a>ChownTask 339 </h2> 340 <p>Changes the owner of a file or directory.</p> 341 <h3>Example</h3> 342 <pre> 242 <p> For more informations, see <a href="http://php.net/chmod">chmod</a> in the PHP Manual. </p> 243 <h3>Attributes</h3> 244 <table> 245 <thead> 246 <tr> 247 <th>Name</th> 248 <th>Type</th> 249 <th>Description</th> 250 <th>Default</th> 251 <th>Required</th> 252 </tr> 253 </thead> 254 <tbody> 255 <tr> 256 <td>file</td> 257 <td>String</td> 258 <td>The name of the file or directory. You either have to specify this 259 attribute, or use a fileset.</td> 260 <td>n/a</td> 261 <td>Yes</td> 262 </tr> 263 <tr> 264 <td>mode</td> 265 <td>String</td> 266 <td>The new mode (octal) for the file. Specified in octal, even if the first 267 digit is not a '0'.</td> 268 <td>n/a</td> 269 <td>Yes</td> 270 </tr> 271 <tr> 272 <td>quiet</td> 273 <td>Boolean</td> 274 <td>Set quiet mode, which suppresses warnings if <code>chmod()</code> fails</td> 275 <td>false</td> 276 <td>No</td> 277 </tr> 278 <tr> 279 <td>failonerror</td> 280 <td>Boolean</td> 281 <td>This flag means 'note errors to the output, but keep going'</td> 282 <td>true</td> 283 <td>No</td> 284 </tr> 285 <tr> 286 <td>verbose</td> 287 <td>Boolean</td> 288 <td>Give more information in error message in case of a failure</td> 289 <td>true</td> 290 <td>No</td> 291 </tr> 292 </tbody> 293 </table> 294 <h3>Supported Nested Tags</h3> 295 <ul> 296 <li>fileset</li> 297 </ul> 298 <h2> 299 <a name="ChownTask"></a>ChownTask </h2> 300 <p>Changes the owner of a file or directory.</p> 301 <h3>Example</h3> 302 <pre> 343 303 <chown file="my-file.txt" user="foo" /> 344 304 <chown file="my-file.txt" user="username.groupname" /> … … 346 306 <chown file="/home/test/my-file.txt" user="foo" verbose="true" failonerror="false" /> 347 307 </pre> 348 <h3>Attributes</h3> 349 <table> 350 <thead> 351 <tr> 352 <th>Name</th> 353 <th>Type</th> 354 <th>Description</th> 355 <th>Default</th> 356 <th>Required</th> 357 </tr> 358 </thead> 359 <tbody> 360 <tr> 361 <td>file</td> 362 <td>String</td> 363 <td>The name of the file or directory. You either have to 364 specify this attribute, or use a fileset.</td> 365 <td>n/a</td> 366 <td>Yes</td> 367 </tr> 368 <tr> 369 <td>user</td> 370 <td>String</td> 371 <td>The new owner of the file. Can contain a username and a 372 groupname, separated by a dot.</td> 373 <td>n/a</td> 374 <td>No</td> 375 </tr> 376 <tr> 377 <td>group</td> 378 <td>String</td> 379 <td>The new group owner of the file.</td> 380 <td>n/a</td> 381 <td>No</td> 382 </tr> 383 <tr> 384 <td>quiet</td> 385 <td>Boolean</td> 386 <td>Set quiet mode, which suppresses warnings if <code>chmod()</code> 387 fails</td> 388 <td>false</td> 389 <td>No</td> 390 </tr> 391 <tr> 392 <td>failonerror</td> 393 <td>Boolean</td> 394 <td>This flag means 'note errors to the output, but keep going'</td> 395 <td>true</td> 396 <td>No</td> 397 </tr> 398 <tr> 399 <td>verbose</td> 400 <td>Boolean</td> 401 <td>Give more information in in error message in case of a 402 failure</td> 403 <td>true</td> 404 <td>No</td> 405 </tr> 406 407 </tbody> 408 </table> 409 <h3>Supported Nested Tags</h3> 410 <ul> 411 <li>fileset</li> 412 </ul> 413 414 415 <h2> 416 <a name="ConditionTask"></a>ConditionTask 417 </h2> 418 <p> 419 Sets a property if a certain condition holds true - this is a 420 generalization of <a href="#AvailableTask">Available</a> and <a 421 href="#UpToDateTask">UpToDate</a>. 422 </p> 423 <p> 424 If the condition holds true, the property value is set to true by 425 default; otherwise, the property is not set. You can set the value to 426 something other than the default by specifying the 427 <code>value</code> 428 attribute. 429 </p> 430 <p> 431 Conditions are specified as nested elements, you must specify exactly 432 one condition - see the <a href="../ProjectComponents.html#Conditions">documentation</a> 433 for a complete list of nested elements. 434 </p> 435 <h3>Example</h3> 436 <pre> 308 <h3>Attributes</h3> 309 <table> 310 <thead> 311 <tr> 312 <th>Name</th> 313 <th>Type</th> 314 <th>Description</th> 315 <th>Default</th> 316 <th>Required</th> 317 </tr> 318 </thead> 319 <tbody> 320 <tr> 321 <td>file</td> 322 <td>String</td> 323 <td>The name of the file or directory. You either have to specify this 324 attribute, or use a fileset.</td> 325 <td>n/a</td> 326 <td>Yes</td> 327 </tr> 328 <tr> 329 <td>user</td> 330 <td>String</td> 331 <td>The new owner of the file. Can contain a username and a groupname, separated 332 by a dot.</td> 333 <td>n/a</td> 334 <td>No</td> 335 </tr> 336 <tr> 337 <td>group</td> 338 <td>String</td> 339 <td>The new group owner of the file.</td> 340 <td>n/a</td> 341 <td>No</td> 342 </tr> 343 <tr> 344 <td>quiet</td> 345 <td>Boolean</td> 346 <td>Set quiet mode, which suppresses warnings if <code>chmod()</code> fails</td> 347 <td>false</td> 348 <td>No</td> 349 </tr> 350 <tr> 351 <td>failonerror</td> 352 <td>Boolean</td> 353 <td>This flag means 'note errors to the output, but keep going'</td> 354 <td>true</td> 355 <td>No</td> 356 </tr> 357 <tr> 358 <td>verbose</td> 359 <td>Boolean</td> 360 <td>Give more information in in error message in case of a failure</td> 361 <td>true</td> 362 <td>No</td> 363 </tr> 364 </tbody> 365 </table> 366 <h3>Supported Nested Tags</h3> 367 <ul> 368 <li>fileset</li> 369 </ul> 370 <h2> 371 <a name="ConditionTask"></a>ConditionTask </h2> 372 <p> Sets a property if a certain condition holds true - this is a generalization of <a 373 href="#AvailableTask">Available</a> and <a href="#UpToDateTask">UpToDate</a>. </p> 374 <p> If the condition holds true, the property value is set to true by default; otherwise, 375 the property is not set. You can set the value to something other than the default by 376 specifying the <code>value</code> attribute. </p> 377 <p> Conditions are specified as nested elements, you must specify exactly one condition - 378 see the <a href="../ProjectComponents.html#Conditions">documentation</a> for a complete 379 list of nested elements. </p> 380 <h3>Example</h3> 381 <pre> 437 382 <condition property="isMacOrWindows"> 438 383 <or> … … 442 387 </condition> 443 388 </pre> 444 <h3>Attributes</h3> 445 <table> 446 <thead> 447 <tr> 448 <th>Name</th> 449 <th>Type</th> 450 <th>Description</th> 451 <th>Default</th> 452 <th>Required</th> 453 </tr> 454 </thead> 455 <tbody> 456 <tr> 457 <td>property</td> 458 <td>String</td> 459 <td>The name of the property to set.</td> 460 <td>n/a</td> 461 <td>Yes</td> 462 </tr> 463 <tr> 464 <td>value</td> 465 <td>String</td> 466 <td>The value to set the property to. Defaults to "true".</td> 467 <td>true</td> 468 <td>No</td> 469 </tr> 470 </tbody> 471 </table> 472 473 <h2> 474 <a name="CopyTask"></a>CopyTask 475 </h2> 476 <p>Copies files or directories. Files are only copied if the source file is newer than the 477 destination file, or when the destination file does not exist. It is 478 possible to explictly overwrite existing files.</p> 479 <h3>Example</h3> 480 <p>On the one hand, CopyTask can be used to copy file by file:</p> 481 <pre> 389 <h3>Attributes</h3> 390 <table> 391 <thead> 392 <tr> 393 <th>Name</th> 394 <th>Type</th> 395 <th>Description</th> 396 <th>Default</th> 397 <th>Required</th> 398 </tr> 399 </thead> 400 <tbody> 401 <tr> 402 <td>property</td> 403 <td>String</td> 404 <td>The name of the property to set.</td> 405 <td>n/a</td> 406 <td>Yes</td> 407 </tr> 408 <tr> 409 <td>value</td> 410 <td>String</td> 411 <td>The value to set the property to. Defaults to "true".</td> 412 <td>true</td> 413 <td>No</td> 414 </tr> 415 </tbody> 416 </table> 417 <h2> 418 <a name="CopyTask"></a>CopyTask </h2> 419 <p>Copies files or directories. Files are only copied if the source file is newer than the 420 destination file, or when the destination file does not exist. It is possible to 421 explictly overwrite existing files.</p> 422 <h3>Example</h3> 423 <p>On the one hand, CopyTask can be used to copy file by file:</p> 424 <pre> 482 425 <copy file="somefile.txt" tofile="/tmp/anotherfile.bak" overwrite="true"/> 483 426 </pre> 484 <p> 485 Additionally, <em>CopyTask</em> supports Filesets, i.e. you can easily 486 include/exclude one or more files. For more information, see <a 487 href="AppendixD-CoreTypes.html#Fileset">Appendix D</a> -- pay particular attention to the <em>defaultexcludes</em> attribute. <a href="AppendixD3-CoreMappers.html">Mappers</a> and 488 <a href="AppendixD2-CoreFilters.html">Filters</a> are also supported by <em>CopyTask</em>, so you can do 489 almost everything that needs processing the content of the files or 490 the filename. 491 </p> 492 <pre> 427 <p> Additionally, <em>CopyTask</em> supports Filesets, i.e. you can easily include/exclude 428 one or more files. For more information, see <a href="AppendixD-CoreTypes.html#Fileset" 429 >Appendix D</a> -- pay particular attention to the <em>defaultexcludes</em> 430 attribute. <a href="AppendixD3-CoreMappers.html">Mappers</a> and <a 431 href="AppendixD2-CoreFilters.html">Filters</a> are also supported by 432 <em>CopyTask</em>, so you can do almost everything that needs processing the content 433 of the files or the filename. </p> 434 <pre> 493 435 <copy todir="/tmp/backup" > 494 436 <fileset dir="."> … … 500 442 </copy> 501 443 </pre> 502 <pre>444 <pre> 503 445 <copy todir="build" > 504 446 <fileset defaultexcludes="false" expandsymboliclinks="true" dir="."> … … 507 449 </copy> 508 450 </pre> 509 <p> 510 <em>Notice:</em> <em>CopyTask</em> does not allow self copying, i.e. 511 copying a file to the same name for security reasons. 512 </p> 513 <h3>Symbolic links</h3> 514 <p> 515 By default, <em>CopyTask</em> does not expand / dereference symbolic links, and will simply copy the link itself. To 516 enable dereferencing, set <em>expandsymboliclinks</em> to <em>true</em> in the <em><fileset></em> tag. 517 </p> 518 519 <h3>Attributes</h3> 520 <table> 521 <thead> 522 <tr> 523 <th>Name</th> 524 <th>Type</th> 525 <th>Description</th> 526 <th>Default</th> 527 <th>Required</th> 528 </tr> 529 </thead> 530 <tbody> 531 <tr> 532 <td>file</td> 533 <td>String</td> 534 <td>The source file.</td> 535 <td>Yes</td> 536 </tr> 537 <tr> 538 <td>tofile</td> 539 <td>String</td> 540 <td> 541 <p> 542 The destination the file is to be written to. <em>tofile</em> 543 specifies a <em>full</em> filename. If you only want to specify a 544 directory to copy to, use <em>todir</em>. 545 </p> 546 <p> 547 Either this or the <em>todir</em> attribute is required. 548 </p> 549 </td> 550 <td>n/a</td> 551 <td>Yes (or <em>todir</em>)</td> 552 </tr> 553 <tr> 554 <td>todir</td> 555 <td>String</td> 556 <td>The directory the file is to be copied to. The file will 557 have the same name of the source file. If you want to specify a 558 different name, use <em>tofile</em>. The directory must exist.</td> 559 <td>n/a</td> 560 <td>Yes (or <em>tofile</em>)</td> 561 </tr> 562 <tr> 563 <td>overwrite</td> 564 <td>Boolean</td> 565 <td>If set to true, the target file will be overwritten.</td> 566 <td>false</td> 567 <td>No</td> 568 </tr> 569 <tr> 570 <td>tstamp<br />or<br />preservelastmodified</td> 571 <td>Boolean</td> 572 <td>If set to <em>true</em>, the new file will have the same 573 mtime as the old one.</td> 574 <td>false</td> 575 <td>No</td> 576 </tr> 577 <tr> 578 <td>includeemptydirs</td> 579 <td>Boolean</td> 580 <td>If set to <em>true</em>, also empty directories are copied. 581 </td> 582 <td>true</td> 583 <td>No</td> 584 </tr> 585 <tr> 586 <td>mode</td> 587 <td>Integer</td> 588 <td>Mode (octal) to create directories with.</td> 589 <td>0755</td> 590 <td>No</td> 591 </tr> 592 <tr> 593 <td>haltonerror</td> 594 <td>Boolean</td> 595 <td>If set to <em>true</em>, halts the build when errors are 596 encountered.</td> 597 <td>true</td> 598 <td>No</td> 599 </tr> 600 </tbody> 601 </table> 602 <h3>Supported Nested Tags</h3> 603 <ul> 604 <li>Fileset</li> 605 <li>Filelist</li> 606 <li>Filterchain</li> 607 <li>Mapper</li> 608 </ul> 609 610 <h2> 611 <a name="CvsTask"></a>CvsTask 612 </h2> 613 <p>Allows rudimentary interfacing with the CVS versioning system.</p> 614 615 <p>As you would expect, this lets you do pretty much anything with 616 CVS. The CvsTask calls ExecTask which actually does the command 617 execution.</p> 618 619 <h3>Example</h3> 620 <pre> 451 <p> 452 <em>Notice:</em> 453 <em>CopyTask</em> does not allow self copying, i.e. copying a file to the same name for 454 security reasons. </p> 455 <h3>Symbolic links</h3> 456 <p> By default, <em>CopyTask</em> does not expand / dereference symbolic links, and will 457 simply copy the link itself. To enable dereferencing, set <em>expandsymboliclinks</em> 458 to <em>true</em> in the <em><fileset></em> tag. </p> 459 <h3>Attributes</h3> 460 <table> 461 <thead> 462 <tr> 463 <th>Name</th> 464 <th>Type</th> 465 <th>Description</th> 466 <th>Default</th> 467 <th>Required</th> 468 </tr> 469 </thead> 470 <tbody> 471 <tr> 472 <td>file</td> 473 <td>String</td> 474 <td>The source file.</td> 475 <td>Yes</td> 476 </tr> 477 <tr> 478 <td>tofile</td> 479 <td>String</td> 480 <td> 481 <p> The destination the file is to be written to. <em>tofile</em> specifies 482 a <em>full</em> filename. If you only want to specify a directory to 483 copy to, use <em>todir</em>. </p> 484 <p> Either this or the <em>todir</em> attribute is required. </p> 485 </td> 486 <td>n/a</td> 487 <td>Yes (or <em>todir</em>)</td> 488 </tr> 489 <tr> 490 <td>todir</td> 491 <td>String</td> 492 <td>The directory the file is to be copied to. The file will have the same name 493 of the source file. If you want to specify a different name, use 494 <em>tofile</em>. The directory must exist.</td> 495 <td>n/a</td> 496 <td>Yes (or <em>tofile</em>)</td> 497 </tr> 498 <tr> 499 <td>overwrite</td> 500 <td>Boolean</td> 501 <td>If set to true, the target file will be overwritten.</td> 502 <td>false</td> 503 <td>No</td> 504 </tr> 505 <tr> 506 <td>tstamp<br />or<br />preservelastmodified</td> 507 <td>Boolean</td> 508 <td>If set to <em>true</em>, the new file will have the same mtime as the old 509 one.</td> 510 <td>false</td> 511 <td>No</td> 512 </tr> 513 <tr> 514 <td>includeemptydirs</td> 515 <td>Boolean</td> 516 <td>If set to <em>true</em>, also empty directories are copied. </td> 517 <td>true</td> 518 <td>No</td> 519 </tr> 520 <tr> 521 <td>mode</td> 522 <td>Integer</td> 523 <td>Mode (octal) to create directories with.</td> 524 <td>0755</td> 525 <td>No</td> 526 </tr> 527 <tr> 528 <td>haltonerror</td> 529 <td>Boolean</td> 530 <td>If set to <em>true</em>, halts the build when errors are encountered.</td> 531 <td>true</td> 532 <td>No</td> 533 </tr> 534 </tbody> 535 </table> 536 <h3>Supported Nested Tags</h3> 537 <ul> 538 <li>Fileset</li> 539 <li>Filelist</li> 540 <li>Filterchain</li> 541 <li>Mapper</li> 542 </ul> 543 <h2> 544 <a name="CvsTask"></a>CvsTask </h2> 545 <p>Allows rudimentary interfacing with the CVS versioning system.</p> 546 <p>As you would expect, this lets you do pretty much anything with CVS. The CvsTask calls 547 ExecTask which actually does the command execution.</p> 548 <h3>Example</h3> 549 <pre> 621 550 <cvs cvsRoot=":pserver:guest@cvs.tigris.org:/cvs" 622 551 module="phing" dest="${ws.dir}"/> 623 552 </pre> 624 625 <p>or, more complex:</p> 626 627 <pre> 553 <p>or, more complex:</p> 554 <pre> 628 555 <cvs output="patch"> 629 556 <command> … … 635 562 </cvs> 636 563 </pre> 637 <h3>Attributes</h3> 638 <table> 639 <thead> 640 <tr> 641 <th>Name</th> 642 <th>Type</th> 643 <th>Description</th> 644 <th>Default</th> 645 <th>Required</th> 646 </tr> 647 </thead> 648 <tbody> 649 <tr> 650 <td>cvsRoot</td> 651 <td>String</td> 652 <td>The root directory on the CVS server</td> 653 <td>n/a</td> 654 <td>No</td> 655 </tr> 656 <tr> 657 <td>CvsRsh</td> 658 <td>String</td> 659 <td>Path to the rsh to execute</td> 660 <td>n/a</td> 661 <td>No</td> 662 </tr> 663 <tr> 664 <td>port</td> 665 <td>Integer</td> 666 <td>Port ion the server to use</td> 667 <td>0</td> 668 <td>No</td> 669 </tr> 670 <tr> 671 <td>passfile</td> 672 <td>String<br /> <em>filename</em></td> 673 <td>Name of file with CVS passwords</td> 674 <td>n/a</td> 675 <td>No</td> 676 </tr> 677 <tr> 678 <td>dest</td> 679 <td>String</td> 680 <td>The directory where checked out files should be placed</td> 681 <td>n/a</td> 682 <td>Yes</td> 683 </tr> 684 <tr> 685 <td>modules</td> 686 <td>String</td> 687 <td>The package/module to operate upon</td> 688 <td>n/a</td> 689 <td>Yes</td> 690 </tr> 691 <tr> 692 <td>tag</td> 693 <td>String</td> 694 <td>The tag of the package/module to operate upon</td> 695 <td>n/a</td> 696 <td>No</td> 697 </tr> 698 <tr> 699 <td>date</td> 700 <td>String</td> 701 <td>Use the most recent revision no later than the given date</td> 702 <td>n/a</td> 703 <td>No</td> 704 </tr> 705 <tr> 706 <td>quiet</td> 707 <td>Boolean</td> 708 <td>Quiet run</td> 709 <td>false</td> 710 <td>No</td> 711 </tr> 712 <tr> 713 <td>noexec</td> 714 <td>Boolean</td> 715 <td>If true, only report changes don't actually do anything</td> 716 <td>false</td> 717 <td>No</td> 718 </tr> 719 <tr> 720 <td>setfailonerror</td> 721 <td>Boolean</td> 722 <td>Stop the build process if the command returns any errors</td> 723 <td>false</td> 724 <td>No</td> 725 </tr> 726 <tr> 727 <td>compression</td> 728 <td>Boolean</td> 729 <td>If true, turns on compression using default (3) compression 730 level</td> 731 <td>false</td> 732 <td>No</td> 733 </tr> 734 <tr> 735 <td>compressionlevel</td> 736 <td>Integer</td> 737 <td>Specifies compression level 1-9</td> 738 <td>false</td> 739 <td>No</td> 740 </tr> 741 <tr> 742 <td>output</td> 743 <td>String<br /> <em>filename</em></td> 744 <td>File to which output should be written</td> 745 <td>n/a</td> 746 <td>No</td> 747 </tr> 748 <tr> 749 <td>error</td> 750 <td>String<br /> <em>filename</em></td> 751 <td>File to which error output should be written</td> 752 <td>n/a</td> 753 <td>No</td> 754 </tr> 755 </tbody> 756 </table> 757 <h3>Supported Nested Tags</h3> 758 <ul> 759 <li>command</li> 760 </ul> 761 <h2> 762 <a name="CvsPassTask"></a>CvsPassTask 763 </h2> 764 <p>This lets you create your own cvs password file -- i.e. this is 765 necessary if you want to provide a password in your build file.</p> 766 <p> 767 If no password file is specified the default location <em>.cvspass</em> 768 in suers home directory is used. 769 </p> 770 <h3>Example</h3> 771 <pre> 564 <h3>Attributes</h3> 565 <table> 566 <thead> 567 <tr> 568 <th>Name</th> 569 <th>Type</th> 570 <th>Description</th> 571 <th>Default</th> 572 <th>Required</th> 573 </tr> 574 </thead> 575 <tbody> 576 <tr> 577 <td>cvsRoot</td> 578 <td>String</td> 579 <td>The root directory on the CVS server</td> 580 <td>n/a</td> 581 <td>No</td> 582 </tr> 583 <tr> 584 <td>CvsRsh</td> 585 <td>String</td> 586 <td>Path to the rsh to execute</td> 587 <td>n/a</td> 588 <td>No</td> 589 </tr> 590 <tr> 591 <td>port</td> 592 <td>Integer</td> 593 <td>Port ion the server to use</td> 594 <td>0</td> 595 <td>No</td> 596 </tr> 597 <tr> 598 <td>passfile</td> 599 <td>String<br /> 600 <em>filename</em></td> 601 <td>Name of file with CVS passwords</td> 602 <td>n/a</td> 603 <td>No</td> 604 </tr> 605 <tr> 606 <td>dest</td> 607 <td>String</td> 608 <td>The directory where checked out files should be placed</td> 609 <td>n/a</td> 610 <td>Yes</td> 611 </tr> 612 <tr> 613 <td>modules</td> 614 <td>String</td> 615 <td>The package/module to operate upon</td> 616 <td>n/a</td> 617 <td>Yes</td> 618 </tr> 619 <tr> 620 <td>tag</td> 621 <td>String</td> 622 <td>The tag of the package/module to operate upon</td> 623 <td>n/a</td> 624 <td>No</td> 625 </tr> 626 <tr> 627 <td>date</td> 628 <td>String</td> 629 <td>Use the most recent revision no later than the given date</td> 630 <td>n/a</td> 631 <td>No</td> 632 </tr> 633 <tr> 634 <td>quiet</td> 635 <td>Boolean</td> 636 <td>Quiet run</td> 637 <td>false</td> 638 <td>No</td> 639 </tr> 640 <tr> 641 <td>noexec</td> 642 <td>Boolean</td> 643 <td>If true, only report changes don't actually do anything</td> 644 <td>false</td> 645 <td>No</td> 646 </tr> 647 <tr> 648 <td>setfailonerror</td> 649 <td>Boolean</td> 650 <td>Stop the build process if the command returns any errors</td> 651 <td>false</td> 652 <td>No</td> 653 </tr> 654 <tr> 655 <td>compression</td> 656 <td>Boolean</td> 657 <td>If true, turns on compression using default (3) compression level</td> 658 <td>false</td> 659 <td>No</td> 660 </tr> 661 <tr> 662 <td>compressionlevel</td> 663 <td>Integer</td> 664 <td>Specifies compression level 1-9</td> 665 <td>false</td> 666 <td>No</td> 667 </tr> 668 <tr> 669 <td>output</td> 670 <td>String<br /> 671 <em>filename</em></td> 672 <td>File to which output should be written</td> 673 <td>n/a</td> 674 <td>No</td> 675 </tr> 676 <tr> 677 <td>error</td> 678 <td>String<br /> 679 <em>filename</em></td> 680 <td>File to which error output should be written</td> 681 <td>n/a</td> 682 <td>No</td> 683 </tr> 684 </tbody> 685 </table> 686 <h3>Supported Nested Tags</h3> 687 <ul> 688 <li>command</li> 689 </ul> 690 <h2> 691 <a name="CvsPassTask"></a>CvsPassTask </h2> 692 <p>This lets you create your own cvs password file -- i.e. this is necessary if you want to 693 provide a password in your build file.</p> 694 <p> If no password file is specified the default location <em>.cvspass</em> in suers home 695 directory is used. </p> 696 <h3>Example</h3> 697 <pre> 772 698 <!-- create a password file --> 773 699 <cvspass cvsRoot=":pserver:guest@cvs.tigris.org:/cvs" passfile="cvspass" password="guest"/> … … 776 702 <cvs cvsRoot=":pserver:guest@cvs.tigris.org:/cvs" module="phing" passFile="cvspass" /> 777 703 </pre> 778 <h3>Attributes</h3> 779 <table> 780 <thead> 781 <tr> 782 <th>Name</th> 783 <th>Type</th> 784 <th>Description</th> 785 <th>Default</th> 786 <th>Required</th> 787 </tr> 788 </thead> 789 <tbody> 790 <tr> 791 <td>cvsRoot</td> 792 <td>String</td> 793 <td>The root directory on the CVS server</td> 794 <td>n/a</td> 795 <td>No</td> 796 </tr> 797 <tr> 798 <td>passFile</td> 799 <td>String</td> 800 <td>Password file to add password to</td> 801 <td>n/a</td> 802 <td>No</td> 803 </tr> 804 <tr> 805 <td>password</td> 806 <td>String</td> 807 <td>Password to add to file</td> 808 <td>n/a</td> 809 <td>Yes</td> 810 </tr> 811 </tbody> 812 </table> 813 814 815 <h2> 816 <a name="DeleteTask"></a> DeleteTask 817 </h2> 818 <p> 819 Deletes a file or directory, or set of files defined by a fileset. See 820 <a href="AppendixD-CoreTypes.html#Fileset">Appendix D</a> for 821 information on Filesets. 822 </p> 823 <h3>Example</h3> 824 <pre><-- Delete a specific file --> 704 <h3>Attributes</h3> 705 <table> 706 <thead> 707 <tr> 708 <th>Name</th> 709 <th>Type</th> 710 <th>Description</th> 711 <th>Default</th> 712 <th>Required</th> 713 </tr> 714 </thead> 715 <tbody> 716 <tr> 717 <td>cvsRoot</td> 718 <td>String</td> 719 <td>The root directory on the CVS server</td> 720 <td>n/a</td> 721 <td>No</td> 722 </tr> 723 <tr> 724 <td>passFile</td> 725 <td>String</td> 726 <td>Password file to add password to</td> 727 <td>n/a</td> 728 <td>No</td> 729 </tr> 730 <tr> 731 <td>password</td> 732 <td>String</td> 733 <td>Password to add to file</td> 734 <td>n/a</td> 735 <td>Yes</td> 736 </tr> 737 </tbody> 738 </table> 739 <h2> 740 <a name="DeleteTask"></a> DeleteTask </h2> 741 <p> Deletes a file or directory, or set of files defined by a fileset. See <a 742 href="AppendixD-CoreTypes.html#Fileset">Appendix D</a> for information on Filesets. </p> 743 <h3>Example</h3> 744 <pre><-- Delete a specific file --> 825 745 <delete file="/tmp/foo.bar" /> 826 746 … … 835 755 </delete> 836 756 </pre> 837 <h3>Attributes</h3> 838 <table> 839 <thead> 840 <tr> 841 <th>Name</th> 842 <th>Type</th> 843 <th>Description</th> 844 <th>Default</th> 845 <th>Required</th> 846 </tr> 847 </thead> 848 <tbody> 849 <tr> 850 <td>file</td> 851 <td>String</td> 852 <td>The file that is to be deleted. You either have to specify 853 this attribute, <em>dir</em>, or use a fileset.</td> 854 <td>n/a</td> 855 <td>Yes (or <em>dir</em>)</td> 856 </tr> 857 <tr> 858 <td>dir</td> 859 <td>String</td> 860 <td>The directory that is to be deleted. You either have to 861 specify this attribute, <em>file</em>, or use a fileset.</td> 862 <td>n/a</td> 863 <td>Yes (or <em>file</em>)</td> 864 </tr> 865 <tr> 866 <td>verbose</td> 867 <td>Boolean</td> 868 <td>Used to force listing of all names of deleted files.</td> 869 <td>n/a</td> 870 <td>No</td> 871 </tr> 872 <tr> 873 <td>quiet</td> 874 <td>Boolean</td> 875 <td> 876 <p>If the file does not exist, do not display a diagnostic 877 message or modify the exit status to reflect an error. This means 878 that if a file or directory cannot be deleted, then no error is 879 reported.</p> 880 <p> 881 This setting emulates the -f option to the Unix <em>rm</em> 882 command. Default is false meaning things are verbose 883 </p> 884 </td> 885 <td>n/a</td> 886 <td>No</td> 887 </tr> 888 <tr> 889 <td>failonerror</td> 890 <td>Boolean</td> 891 <td>If this attribute is set to <em>true</em>, DeleteTask will 892 verbose on errors but the build process will not be stopped.</td> 893 <td>true</td> 894 <td>No</td> 895 </tr> 896 <tr> 897 <td>includeemptydirs</td> 898 <td>Boolean</td> 899 <td>Determines if empty directories are also to be deleted.</td> 900 <td>false</td> 901 <td>No</td> 902 </tr> 903 </tbody> 904 </table> 905 <h3>Supported Nested Tags</h3> 906 <ul> 907 <li>Fileset</li> 908 </ul> 909 910 <h2> 911 <a name="EchoTask"></a>EchoTask 912 </h2> 913 <p>Echoes a message to the current loggers and listeners which 914 means standard out unless overridden. A level can be specified, which 915 controls at what logging level the message is filtered at.</p> 916 917 <p>The task can also echo to a file, in which case the option to 918 append rather than overwrite the file is available, and the level 919 option is ignored</p> 920 921 <p>Additionally, the task can echo the contents of a nested fileset 922 element.</p> 923 924 <h3>Examples</h3> 925 <pre><echo msg="Phing rocks!" /> 757 <h3>Attributes</h3> 758 <table> 759 <thead> 760 <tr> 761 <th>Name</th> 762 <th>Type</th> 763 <th>Description</th> 764 <th>Default</th> 765 <th>Required</th> 766 </tr> 767 </thead> 768 <tbody> 769 <tr> 770 <td>file</td> 771 <td>String</td> 772 <td>The file that is to be deleted. You either have to specify this attribute, 773 <em>dir</em>, or use a fileset.</td> 774 <td>n/a</td> 775 <td>Yes (or <em>dir</em>)</td> 776 </tr> 777 <tr> 778 <td>dir</td> 779 <td>String</td> 780 <td>The directory that is to be deleted. You either have to specify this 781 attribute, <em>file</em>, or use a fileset.</td> 782 <td>n/a</td> 783 <td>Yes (or <em>file</em>)</td> 784 </tr> 785 <tr> 786 <td>verbose</td> 787 <td>Boolean</td> 788 <td>Used to force listing of all names of deleted files.</td> 789 <td>n/a</td> 790 <td>No</td> 791 </tr> 792 <tr> 793 <td>quiet</td> 794 <td>Boolean</td> 795 <td> 796 <p>If the file does not exist, do not display a diagnostic message or modify 797 the exit status to reflect an error. This means that if a file or 798 directory cannot be deleted, then no error is reported.</p> 799 <p> This setting emulates the -f option to the Unix <em>rm</em> command. 800 Default is false meaning things are verbose </p> 801 </td> 802 <td>n/a</td> 803 <td>No</td> 804 </tr> 805 <tr> 806 <td>failonerror</td> 807 <td>Boolean</td> 808 <td>If this attribute is set to <em>true</em>, DeleteTask will verbose on errors 809 but the build process will not be stopped.</td> 810 <td>true</td> 811 <td>No</td> 812 </tr> 813 <tr> 814 <td>includeemptydirs</td> 815 <td>Boolean</td> 816 <td>Determines if empty directories are also to be deleted.</td> 817 <td>false</td> 818 <td>No</td> 819 </tr> 820 </tbody> 821 </table> 822 <h3>Supported Nested Tags</h3> 823 <ul> 824 <li>Fileset</li> 825 </ul> 826 <h2> 827 <a name="EchoTask"></a>EchoTask </h2> 828 <p>Echoes a message to the current loggers and listeners which means standard out unless 829 overridden. A level can be specified, which controls at what logging level the message 830 is filtered at.</p> 831 <p>The task can also echo to a file, in which case the option to append rather than 832 overwrite the file is available, and the level option is ignored</p> 833 <p>Additionally, the task can echo the contents of a nested fileset element.</p> 834 <h3>Examples</h3> 835 <pre><echo msg="Phing rocks!" /> 926 836 927 837 <echo message="Binarycloud, too." /> … … 930 840 931 841 <echo file="test.txt" append="false">This is a test message</echo></pre> 932 <h3>Attributes</h3> 933 <table> 934 <thead> 935 <tr> 936 <th>Name</th> 937 <th>Type</th> 938 <th>Description</th> 939 <th>Default</th> 940 <th>Required</th> 941 </tr> 942 </thead> 943 <tbody> 944 <tr> 945 <td>msg</td> 946 <td>String</td> 947 <td>The string that is to be send to the output.</td> 948 <td>n/a</td> 949 <td>Yes</td> 950 </tr> 951 <tr> 952 <td>message</td> 953 <td>String</td> 954 <td>Alias for <em>msg</em>.</td> 955 <td>n/a</td> 956 <td>Yes</td> 957 </tr> 958 <tr> 959 <td>file</td> 960 <td>String</td> 961 <td>The file to write the message to.</td> 962 <td>n/a</td> 963 <td>No</td> 964 </tr> 965 <tr> 966 <td>append</td> 967 <td>Boolean</td> 968 <td>Append to an existing file?</td> 969 <td>false</td> 970 <td>No</td> 971 </tr> 972 <tr> 973 <td>level</td> 974 <td>String</td> 975 <td>Control the level at which this message is reported. One of 976 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 977 <em>debug</em>.</td> 978 <td><em>info</em></td> 979 <td>No</td> 980 </tr> 981 </tbody> 982 </table> 983 984 <h3>Supported Nested Tags</h3> 985 <ul> 986 <li>Fileset</li> 987 </ul> 988 989 <h2> 990 <a name="ExecTask"></a>ExecTask 991 </h2> 992 <p>Executes a shell command. You can use this to quickly add a new 993 command to Phing. However, if you want to use this regularly, you 994 should think about writing a Task for it.</p> 995 <h3>Example</h3> 996 <pre><-- List the contents of "/home". --> 842 <h3>Attributes</h3> 843 <table> 844 <thead> 845 <tr> 846 <th>Name</th> 847 <th>Type</th> 848 <th>Description</th> 849 <th>Default</th> 850 <th>Required</th> 851 </tr> 852 </thead> 853 <tbody> 854 <tr> 855 <td>msg</td> 856 <td>String</td> 857 <td>The string that is to be send to the output.</td> 858 <td>n/a</td> 859 <td>Yes</td> 860 </tr> 861 <tr> 862 <td>message</td> 863 <td>String</td> 864 <td>Alias for <em>msg</em>.</td> 865 <td>n/a</td> 866 <td>Yes</td> 867 </tr> 868 <tr> 869 <td>file</td> 870 <td>String</td> 871 <td>The file to write the message to.</td> 872 <td>n/a</td> 873 <td>No</td> 874 </tr> 875 <tr> 876 <td>append</td> 877 <td>Boolean</td> 878 <td>Append to an existing file?</td> 879 <td>false</td> 880 <td>No</td> 881 </tr> 882 <tr> 883 <td>level</td> 884 <td>String</td> 885 <td>Control the level at which this message is reported. One of <em>error</em>, 886 <em>warning</em>, <em>info</em>, <em>verbose</em>, <em>debug</em>.</td> 887 <td><em>info</em></td> 888 <td>No</td> 889 </tr> 890 </tbody> 891 </table> 892 <h3>Supported Nested Tags</h3> 893 <ul> 894 <li>Fileset</li> 895 </ul> 896 <h2> 897 <a name="ExecTask"></a>ExecTask </h2> 898 <p>Executes a shell command. You can use this to quickly add a new command to Phing. 899 However, if you want to use this regularly, you should think about writing a Task for 900 it.</p> 901 <h3>Example</h3> 902 <pre><-- List the contents of "/home". --> 997 903 <exec command="ls -l" dir="/home" /> 998 904 … … 1001 907 1002 908 <-- List the contents of "/tmp" out to a file. --> 1003 <exec command="ls -l /tmp > foo.out" /> 1004 </pre> 1005 <h3>Attributes</h3> 1006 <table> 1007 <thead> 1008 <tr> 1009 <th>Name</th> 1010 <th>Type</th> 1011 <th>Description</th> 1012 <th>Default</th> 1013 <th>Required</th> 1014 </tr> 1015 </thead> 1016 <tbody> 1017 <tr> 1018 <td>command</td> 1019 <td>String</td> 1020 <td>The command that is to be executed.</td> 1021 <td>n/a</td> 1022 <td rowspan="2">One of the two</td> 1023 </tr> 1024 <tr> 1025 <td>executable</td> 1026 <td>String</td> 1027 <td>The command to execute without any 1028 command line arguments.</td> 1029 <td>n/a</td> 1030 </tr> 1031 <tr> 1032 <td>dir</td> 1033 <td>String</td> 1034 <td>The directory the command is to be executed in.</td> 1035 <td>n/a</td> 1036 <td>No</td> 1037 </tr> 1038 <tr> 1039 <td>output</td> 1040 <td>String</td> 1041 <td>Where to direct stdout.</td> 1042 <td>n/a</td> 1043 <td>No</td> 1044 </tr> 1045 <tr> 1046 <td>error</td> 1047 <td>String</td> 1048 <td>Where to direct stderr.</td> 1049 <td>n/a</td> 1050 <td>No</td> 1051 </tr> 1052 <tr> 1053 <td>os</td> 1054 <td>String</td> 1055 <td>Only execute if the <a href="AppendixA-FactSheet.html#BuiltInProperties">os.name</a> property contains specified text.</td> 1056 <td>n/a</td> 1057 <td>No</td> 1058 </tr> 1059 <tr> 1060 <td>escape</td> 1061 <td>Boolean</td> 1062 <td>By default, shell metacharacters are not 1063 escaped before executing. Setting this to true will 1064 enable this precaution.</td> 1065 <td>False</td> 1066 <td>No</td> 1067 </tr> 1068 <tr> 1069 <td>passthru</td> 1070 <td>Boolean</td> 1071 <td>Whether to use PHP's passthru() function instead of exec().</td> 1072 <td>False</td> 1073 <td>No</td> 1074 </tr> 1075 <tr> 1076 <td>logoutput</td> 1077 <td>Boolean</td> 1078 <td>Whether to log returned output as MSG_INFO instead of 1079 MSG_VERBOSE.</td> 1080 <td>False</td> 1081 <td>No</td> 1082 </tr> 1083 <tr> 1084 <td>spawn</td> 1085 <td>Boolean</td> 1086 <td>Whether to spawn unix programs to the background, 1087 redirecting stdout.</td> 1088 <td>False</td> 1089 <td>No</td> 1090 </tr> 1091 <tr> 1092 <td>returnProperty</td> 1093 <td>String</td> 1094 <td>Property name to set return value to from exec() call.</td> 1095 <td>n/a</td> 1096 <td>No</td> 1097 </tr> 1098 <tr> 1099 <td>outputProperty</td> 1100 <td>String</td> 1101 <td>Property name to set output value to from exec() call.</td> 1102 <td>n/a</td> 1103 <td>No</td> 1104 </tr> 1105 <tr> 1106 <td>checkreturn</td> 1107 <td>Boolean</td> 1108 <td>Whether to check the return code of the program, throws a 1109 BuildException when returncode != 0.</td> 1110 <td>FALSE</td> 1111 <td>No</td> 1112 </tr> 1113 <tr> 1114 <td>level</td> 1115 <td>String</td> 1116 <td>Control the level at which status messages are reported. One of 1117 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 1118 <em>debug</em>.</td> 1119 <td><em>verbose</em></td> 1120 <td>No</td> 1121 </tr> 1122 </tbody> 1123 </table> 1124 1125 <h3>Supported Nested Tags</h3> 1126 <ul> 1127 <li>arg 1128 <table> 1129 <thead> 1130 <tr> 1131 <th>Name</th> 1132 <th>Type</th> 1133 <th>Description</th> 1134 <th>Default</th> 1135 <th>Required</th> 1136 </tr> 1137 </thead> 1138 <tbody> 1139 <tr> 1140 <td>value</td> 1141 <td>String</td> 1142 <td>A single command-line argument; 1143 can contain space characters.</td> 1144 <td>n/a</td> 1145 <td rowspan="4">One of these</td> 1146 </tr> 1147 <tr> 1148 <td>file</td> 1149 <td>String</td> 1150 <td>The name of a file as a single 1151 command-line argument; will be 1152 replaced with the absolute filename 1153 of the file.</td> 1154 <td>n/a</td> 1155 </tr> 1156 <tr> 1157 <td>path</td> 1158 <td>String</td> 1159 <td>A string that will be treated as 1160 a path-like string as a single 1161 command-line argument; you can use ; 1162 or : as path separators and Phing will 1163 convert it to the platform's local 1164 conventions.</td> 1165 <td>n/a</td> 1166 </tr> 1167 <tr> 1168 <td>line</td> 1169 <td>String</td> 1170 <td>A space-delimited list of 1171 command-line arguments.</td> 1172 <td>n/a</td> 1173 </tr> 1174 </tbody> 1175 </table> 1176 </li> 1177 </ul> 1178 1179 <h2> 1180 <a name="ExitTask"></a>ExitTask 1181 </h2> 1182 <p>Causes the current build script execution to fail and the script 1183 to exit with an (optional) error message.</p> 1184 <h3>Example</h3> 1185 <pre><-- Exit w/ message --> 909 <exec command="ls -l /tmp > foo.out" escape="false" /> 910 </pre> 911 <h3>Attributes</h3> 912 <table> 913 <thead> 914 <tr> 915 <th>Name</th> 916 <th>Type</th> 917 <th>Description</th> 918 <th>Default</th> 919 <th>Required</th> 920 </tr> 921 </thead> 922 <tbody> 923 <tr> 924 <td>command</td> 925 <td>String</td> 926 <td>The command that is to be executed.</td> 927 <td>n/a</td> 928 <td rowspan="2">One of the two</td> 929 </tr> 930 <tr> 931 <td>executable</td> 932 <td>String</td> 933 <td>The command to execute without any command line arguments.</td> 934 <td>n/a</td> 935 </tr> 936 <tr> 937 <td>dir</td> 938 <td>String</td> 939 <td>The directory the command is to be executed in.</td> 940 <td>n/a</td> 941 <td>No</td> 942 </tr> 943 <tr> 944 <td>output</td> 945 <td>String</td> 946 <td>Where to direct stdout.</td> 947 <td>n/a</td> 948 <td>No</td> 949 </tr> 950 <tr> 951 <td>error</td> 952 <td>String</td> 953 <td>Where to direct stderr.</td> 954 <td>n/a</td> 955 <td>No</td> 956 </tr> 957 <tr> 958 <td>os</td> 959 <td>String</td> 960 <td>Only execute if the <a href="AppendixA-FactSheet.html#BuiltInProperties" 961 >os.name</a> property contains specified text.</td> 962 <td>n/a</td> 963 <td>No</td> 964 </tr> 965 <tr> 966 <td>escape</td> 967 <td>Boolean</td> 968 <td>By default, we escape shell metacharacters before executing. Setting this to 969 false will disable this precaution.</td> 970 <td>TRUE</td> 971 <td>No</td> 972 </tr> 973 <tr> 974 <td>passthru</td> 975 <td>Boolean</td> 976 <td>Whether to use PHP's passthru() function instead of exec().</td> 977 <td>FALSE</td> 978 <td>No</td> 979 </tr> 980 <tr> 981 <td>logoutput</td> 982 <td>Boolean</td> 983 <td>Whether to log returned output as MSG_INFO instead of MSG_VERBOSE.</td> 984 <td>FALSE</td> 985 <td>No</td> 986 </tr> 987 <tr> 988 <td>spawn</td> 989 <td>Boolean</td> 990 <td>Whether to spawn unix programs to the background, redirecting stdout.</td> 991 <td>FALSE</td> 992 <td>No</td> 993 </tr> 994 <tr> 995 <td>returnProperty</td> 996 <td>String</td> 997 <td>Property name to set return value to from exec() call.</td> 998 <td>n/a</td> 999 <td>No</td> 1000 </tr> 1001 <tr> 1002 <td>outputProperty</td> 1003 <td>String</td> 1004 <td>Property name to set output value to from exec() call.</td> 1005 <td>n/a</td> 1006 <td>No</td> 1007 </tr> 1008 <tr> 1009 <td>checkreturn</td> 1010 <td>Boolean</td> 1011 <td>Whether to check the return code of the program, throws a BuildException 1012 when returncode != 0.</td> 1013 <td>FALSE</td> 1014 <td>No</td> 1015 </tr> 1016 <tr> 1017 <td>level</td> 1018 <td>String</td> 1019 <td>Control the level at which status messages are reported. One of 1020 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 1021 <em>debug</em>.</td> 1022 <td><em>verbose</em></td> 1023 <td>No</td> 1024 </tr> 1025 </tbody> 1026 </table> 1027 <h3>Supported Nested Tags</h3> 1028 <ul> 1029 <li>arg <table> 1030 <thead> 1031 <tr> 1032 <th>Name</th> 1033 <th>Type</th> 1034 <th>Description</th> 1035 <th>Default</th> 1036 <th>Required</th> 1037 </tr> 1038 </thead> 1039 <tbody> 1040 <tr> 1041 <td>value</td> 1042 <td>String</td> 1043 <td>A single command-line argument; can contain space characters.</td> 1044 <td>n/a</td> 1045 <td rowspan="4">One of these</td> 1046 </tr> 1047 <tr> 1048 <td>file</td> 1049 <td>String</td> 1050 <td>The name of a file as a single command-line argument; will be 1051 replaced with the absolute filename of the file.</td> 1052 <td>n/a</td> 1053 </tr> 1054 <tr> 1055 <td>path</td> 1056 <td>String</td> 1057 <td>A string that will be treated as a path-like string as a single 1058 command-line argument; you can use ; or : as path separators and Ant 1059 will convert it to the platform's local conventions.</td> 1060 <td>n/a</td> 1061 </tr> 1062 <tr> 1063 <td>line</td> 1064 <td>String</td> 1065 <td>A space-delimited list of command-line arguments.</td> 1066 <td>n/a</td> 1067 </tr> 1068 </tbody> 1069 </table> 1070 </li> 1071 </ul> 1072 <h2> 1073 <a name="ExitTask"></a>ExitTask </h2> 1074 <p>Causes the current build script execution to fail and the script to exit with an 1075 (optional) error message.</p> 1076 <h3>Example</h3> 1077 <pre><-- Exit w/ message --> 1186 1078 <fail message="Failed for some reason!" /> 1187 1079 … … 1193 1085 1194 1086 </pre> 1195 <h3>Attributes</h3> 1196 <table> 1197 <thead> 1198 <tr> 1199 <th>Name</th> 1200 <th>Type</th> 1201 <th>Description</th> 1202 <th>Default</th> 1203 <th>Required</th> 1204 </tr> 1205 </thead> 1206 <tbody> 1207 <tr> 1208 <td>message</td> 1209 <td>String</td> 1210 <td>The message to display (reason for script abort).</td> 1211 <td>"No Message"</td> 1212 <td>No</td> 1213 </tr> 1214 <tr> 1215 <td>if</td> 1216 <td>String</td> 1217 <td>Name of property that must be set for script to exit.</td> 1218 <td>n/a</td> 1219 <td>No</td> 1220 </tr> 1221 <tr> 1222 <td>unless</td> 1223 <td>String</td> 1224 <td>Name of property that must <em>not</em> be set in order for 1225 script to exit.</td> 1226 <td>n/a</td> 1227 <td>No</td> 1228 </tr> 1229 </tbody> 1230 </table> 1231 1232 <h2> 1233 <a name="ForeachTask"></a>ForeachTask 1234 </h2> 1235 <p>The foreach task iterates over a list, a list of filesets, or 1236 both. If both, list and filesets, are specified, the list will be 1237 evaluated first. Nested filesets are evaluated in the order they 1238 appear in the task.</p> 1239 <h3>Example</h3> 1240 <pre> 1087 <h3>Attributes</h3> 1088 <table> 1089 <thead> 1090 <tr> 1091 <th>Name</th> 1092 <th>Type</th> 1093 <th>Description</th> 1094 <th>Default</th> 1095 <th>Required</th> 1096 </tr> 1097 </thead> 1098 <tbody> 1099 <tr> 1100 <td>message</td> 1101 <td>String</td> 1102 <td>The message to display (reason for script abort).</td> 1103 <td>"No Message"</td> 1104 <td>No</td> 1105 </tr> 1106 <tr> 1107 <td>if</td> 1108 <td>String</td> 1109 <td>Name of property that must be set for script to exit.</td> 1110 <td>n/a</td> 1111 <td>No</td> 1112 </tr> 1113 <tr> 1114 <td>unless</td> 1115 <td>String</td> 1116 <td>Name of property that must <em>not</em> be set in order for script to 1117 exit.</td> 1118 <td>n/a</td> 1119 <td>No</td> 1120 </tr> 1121 </tbody> 1122 </table> 1123 <h2> 1124 <a name="ForeachTask"></a>ForeachTask </h2> 1125 <p>The foreach task iterates over a list, a list of filesets, or both. If both, list and 1126 filesets, are specified, the list will be evaluated first. Nested filesets are evaluated 1127 in the order they appear in the task.</p> 1128 <h3>Example</h3> 1129 <pre> 1241 1130 <!-- loop through languages, and call buildlang task with setted param --> 1242 1131 <property name="languages" value="en,fr,de" /> … … 1250 1139 </foreach> 1251 1140 </pre> 1252 <h3>Attributes</h3> 1253 <table> 1254 <thead> 1255 <tr> 1256 <th>Name</th> 1257 <th>Type</th> 1258 <th>Description</th> 1259 <th>Default</th> 1260 <th>Required</th> 1261 </tr> 1262 </thead> 1263 <tbody> 1264 <tr> 1265 <td>list</td> 1266 <td>string</td> 1267 <td>The list of values to process, with the delimiter 1268 character, indicated by the "delimiter" attribute, separating each 1269 value.</td> 1270 <td>n/a</td> 1271 <td>Yes</td> 1272 </tr> 1273 <tr> 1274 <td>target</td> 1275 <td>string</td> 1276 <td>The target to call for each token, passing the token as the 1277 parameter with the name indicated by the "param" attribute.</td> 1278 <td>n/a</td> 1279 <td>Yes</td> 1280 </tr> 1281 <tr> 1282 <td>param</td> 1283 <td>string</td> 1284 <td>The name of the parameter to pass the tokens in as to the 1285 target.</td> 1286 <td>n/a</td> 1287 <td>Yes</td> 1288 </tr> 1289 <tr> 1290 <td>absparam</td> 1291 <td>string</td> 1292 <td>The name of the absolute pathparameter to pass the tokens 1293 in as to the target (used while processing nested filesets).</td> 1294 <td>n/a</td> 1295 <td>Yes</td> 1296 </tr> 1297 <tr> 1298 <td>delimiter</td> 1299 <td>string</td> 1300 <td>The delimiter string that separates the values in the 1301 "list" parameter. The default is ",".</td> 1302 <td>,</td> 1303 <td>No</td> 1304 </tr> 1305 </tbody> 1306 </table> 1307 1308 <h3>Supported Nested Tags</h3> 1309 <ul> 1310 <li>Fileset</li> 1311 <li>Mapper</li> 1312 </ul> 1313 1314 <h2> 1315 <a name="IfTask"></a>IfTask 1316 </h2> 1317 <p>Perform some tasks based on whether a given condition holds true 1318 or not.</p> 1319 <h3>Attributes</h3> 1320 <p> 1321 This task doesn't have any attributes, the condition to test is 1322 specified by a nested element - see the <a 1323 href="../ProjectComponents.html#Conditions">documentation</a> for a 1324 complete list of nested elements. 1325 </p> 1326 <p> 1327 Just like the 1328 <code><condition></code> 1329 task, only a single condition can be specified - you combine them 1330 using 1331 <code><and></code> 1332 or 1333 <code><or></code> 1334 conditions. 1335 </p> 1336 <p> 1337 In addition to the condition, you can specify three different child 1338 elements, 1339 <code><elseif></code> 1340 , 1341 <code><then></code> 1342 and 1343 <code><else></code> 1344 . All three subelements are optional. Both 1345 <code><then></code> 1346 and 1347 <code><else></code> 1348 must not be used more than once inside the if task. Both are 1349 containers for Phing tasks. 1350 </p> 1351 1352 <p> 1353 The 1354 <code><elseif></code> 1355 behaves exactly like an 1356 <code><if></code> 1357 except that it cannot contain the 1358 <code><else></code> 1359 element inside of it. You may specify as may of these as you like, and 1360 the order they are specified is the order they are evaluated in. If 1361 the condition on the 1362 <code><if></code> 1363 is false, then the first 1364 <code><elseif></code> 1365 who's conditional evaluates to true will be executed. The 1366 <code><else></code> 1367 will be executed only if the 1368 <code><if></code> 1369 and all 1370 <code><elseif></code> 1371 conditions are false. 1372 </p> 1373 <h3>Example</h3> 1374 <pre> 1141 <h3>Attributes</h3> 1142 <table> 1143 <thead> 1144 <tr> 1145 <th>Name</th> 1146 <th>Type</th> 1147 <th>Description</th> 1148 <th>Default</th> 1149 <th>Required</th> 1150 </tr> 1151 </thead> 1152 <tbody> 1153 <tr> 1154 <td>list</td> 1155 <td>string</td> 1156 <td>The list of values to process, with the delimiter character, indicated by 1157 the "delimiter" attribute, separating each value.</td> 1158 <td>n/a</td> 1159 <td>No</td> 1160 </tr> 1161 <tr> 1162 <td>target</td> 1163 <td>string</td> 1164 <td>The target to call for each token, passing the token as the parameter with 1165 the name indicated by the "param" attribute.</td> 1166 <td>n/a</td> 1167 <td>Yes</td> 1168 </tr> 1169 <tr> 1170 <td>param</td> 1171 <td>string</td> 1172 <td>The name of the parameter to pass the tokens in as to the target.</td> 1173 <td>n/a</td> 1174 <td>Yes</td> 1175 </tr> 1176 <tr> 1177 <td>absparam</td> 1178 <td>string</td> 1179 <td>The name of the absolute pathparameter to pass the tokens in as to the 1180 target (used while processing nested filesets).</td> 1181 <td>n/a</td> 1182 <td>No</td> 1183 </tr> 1184 <tr> 1185 <td>delimiter</td> 1186 <td>string</td> 1187 <td>The delimiter string that separates the values in the "list" parameter. The 1188 default is ",".</td> 1189 <td>,</td> 1190 <td>No</td> 1191 </tr> 1192 </tbody> 1193 </table> 1194 <h3>Supported Nested Tags</h3> 1195 <ul> 1196 <li>Fileset</li> 1197 <li>Mapper</li> 1198 </ul> 1199 <h2> 1200 <a name="IfTask"></a>IfTask </h2> 1201 <p>Perform some tasks based on whether a given condition holds true or not.</p> 1202 <h3>Attributes</h3> 1203 <p> This task doesn't have any attributes, the condition to test is specified by a nested 1204 element - see the <a href="../ProjectComponents.html#Conditions">documentation</a> for a 1205 complete list of nested elements. </p> 1206 <p> Just like the <code><condition></code> task, only a single condition can be 1207 specified - you combine them using <code><and></code> or <code><or></code> 1208 conditions. </p> 1209 <p> In addition to the condition, you can specify three different child elements, 1210 <code><elseif></code> , <code><then></code> and 1211 <code><else></code> . All three subelements are optional. Both 1212 <code><then></code> and <code><else></code> must not be used more than 1213 once inside the if task. Both are containers for Phing tasks. </p> 1214 <p> The <code><elseif></code> behaves exactly like an <code><if></code> except 1215 that it cannot contain the <code><else></code> element inside of it. You may 1216 specify as may of these as you like, and the order they are specified is the order they 1217 are evaluated in. If the condition on the <code><if></code> is false, then the 1218 first <code><elseif></code> who's conditional evaluates to true will be executed. 1219 The <code><else></code> will be executed only if the <code><if></code> and 1220 all <code><elseif></code> conditions are false. </p> 1221 <h3>Example</h3> 1222 <pre> 1375 1223 <if> 1376 1224 <equals arg1="${foo}" arg2="bar" /> … … 1383 1231 </if> 1384 1232 </pre> 1385 1386 <pre> 1233 <pre> 1387 1234 <if> 1388 1235 <equals arg1="${foo}" arg2="bar" /> … … 1403 1250 </if> 1404 1251 </pre> 1405 1406 <h2> 1407 <a name="ImportTask"></a>ImportTask 1408 </h2> 1409 <p>Imports another build file into the current project.</p> 1410 <p>On execution it will read another Phing file into the same 1411 Project. Functionally it is nearly the same as copy and pasting the 1412 imported file onto the end of the importing file.</p> 1413 <h3>Target Overriding</h3> 1414 <p>If a target in the main file is also present in at least one of 1415 the imported files, the one from the main file takes precedence.</p> 1416 1417 <p> 1418 So if I import for example a <em>docs/build.xml</em> file named <strong>builddocs</strong>, 1419 that contains a "<strong>docs</strong>" target, I can redefine it in 1420 my main buildfile and that is the one that will be called. This makes 1421 it easy to keep the same target name, so that the overriding target is 1422 still called by any other targets--in either the main or imported 1423 buildfile(s)--for which it is a dependency, with a different 1424 implementation. The target from <em>docs/build.xml</em> is made 1425 available by the name "<strong>builddocs.docs</strong>". This enables 1426 the new implementation to call the old target, thus enhancing it with 1427 tasks called before or after it. 1428 </p> 1429 <h3>Special Properties</h3> 1430 <p>Imported files are treated as they are present in the main 1431 buildfile. This makes it easy to understand, but it makes it 1432 impossible for them to reference files and resources relative to their 1433 path. Because of this, for every imported file, Phing adds a property 1434 that contains the path to the imported buildfile. With this path, the 1435 imported buildfile can keep resources and be able to reference them 1436 relative to its position.</p> 1437 1438 <p> 1439 So if I import for example a <em>docs/build.xml</em> file named <strong>builddocs</strong>, 1440 I can get its path as <strong>phing.file.builddocs</strong>, similarly 1441 to the <strong>phing.file</strong> property of the main buildfile. 1442 </p> 1443 1444 <p>Note that "builddocs" is not the filename, but the name 1445 attribute present in the imported project tag.</p> 1446 1447 <p>If import file does not have a name attribute, the 1448 phing.file.projectname property will not be set.</p> 1449 <h3>Resolving Files Against the Imported File</h3> 1450 <p> 1451 Suppose your main build file called 1452 <code>importing.xml</code> 1453 imports a build file 1454 <code>imported.xml</code> 1455 , located anywhere on the file system, and 1456 <code>imported.xml</code> 1457 reads a set of properties from 1458 <code>imported.properties</code> 1459 : 1460 </p> 1461 <pre> 1252 <h2> 1253 <a name="ImportTask"></a>ImportTask </h2> 1254 <p>Imports another build file into the current project.</p> 1255 <p>On execution it will read another Phing file into the same Project. Functionally it is 1256 nearly the same as copy and pasting the imported file onto the end of the importing 1257 file.</p> 1258 <h3>Target Overriding</h3> 1259 <p>If a target in the main file is also present in at least one of the imported files, the 1260 one from the main file takes precedence.</p> 1261 <p> So if I import for example a <em>docs/build.xml</em> file named 1262 <strong>builddocs</strong>, that contains a "<strong>docs</strong>" target, I can 1263 redefine it in my main buildfile and that is the one that will be called. This makes it 1264 easy to keep the same target name, so that the overriding target is still called by any 1265 other targets--in either the main or imported buildfile(s)--for which it is a 1266 dependency, with a different implementation. The target from <em>docs/build.xml</em> is 1267 made available by the name "<strong>builddocs.docs</strong>". This enables the new 1268 implementation to call the old target, thus enhancing it with tasks called before or 1269 after it. </p> 1270 <h3>Special Properties</h3> 1271 <p>Imported files are treated as they are present in the main buildfile. This makes it easy 1272 to understand, but it makes it impossible for them to reference files and resources 1273 relative to their path. Because of this, for every imported file, Phing adds a property 1274 that contains the path to the imported buildfile. With this path, the imported buildfile 1275 can keep resources and be able to reference them relative to its position.</p> 1276 <p> So if I import for example a <em>docs/build.xml</em> file named 1277 <strong>builddocs</strong>, I can get its path as 1278 <strong>phing.file.builddocs</strong>, similarly to the <strong>phing.file</strong> 1279 property of the main buildfile. </p> 1280 <p>Note that "builddocs" is not the filename, but the name attribute present in the imported 1281 project tag.</p> 1282 <p>If import file does not have a name attribute, the phing.file.projectname property will 1283 not be set.</p> 1284 <h3>Resolving Files Against the Imported File</h3> 1285 <p> Suppose your main build file called <code>importing.xml</code> imports a build file 1286 <code>imported.xml</code> , located anywhere on the file system, and 1287 <code>imported.xml</code> reads a set of properties from 1288 <code>imported.properties</code> : </p> 1289 <pre> 1462 1290 <!-- importing.xml --> 1463 1291 <project name="importing" basedir="." default="..."> … … 1470 1298 </project> 1471 1299 </pre> 1472 1473 <p> 1474 This snippet however will resolve 1475 <code>imported.properties</code> 1476 against the basedir of 1477 <code>importing.xml</code> 1478 , because the basedir of 1479 <code>imported.xml</code> 1480 is ignored by Phing. The right way to use 1481 <code>imported.properties</code> 1482 is: 1483 </p> 1484 <pre> 1300 <p> This snippet however will resolve <code>imported.properties</code> against the basedir 1301 of <code>importing.xml</code> , because the basedir of <code>imported.xml</code> is 1302 ignored by Phing. The right way to use <code>imported.properties</code> is: </p> 1303 <pre> 1485 1304 <!-- imported.xml --> 1486 1305 <project name="imported" basedir="." default="..."> … … 1491 1310 </project> 1492 1311 </pre> 1493 <p> 1494 As explained above 1495 <code>${phing.file.imported}</code> 1496 stores the path of the build script, that defines the project called <strong>imported</strong>, 1497 (in short it stores the path to <em>imported.xml</em>) and <php 1498 function="dirname"> takes its directory. This technique also allows 1499 <em>imported.xml</em> to be used as a standalone file (without being 1500 imported in other project). 1501 </p> 1502 <h3>Example</h3> 1503 <pre> 1312 <p> As explained above <code>${phing.file.imported}</code> stores the path of the build 1313 script, that defines the project called <strong>imported</strong>, (in short it stores 1314 the path to <em>imported.xml</em>) and <php function="dirname"> takes its 1315 directory. This technique also allows <em>imported.xml</em> to be used as a standalone 1316 file (without being imported in other project). </p> 1317 <h3>Example</h3> 1318 <pre> 1504 1319 <import file="path/to/build.xml"/> 1505 1320 <import file="path/to/build.xml" optional="true"/> 1506 1321 </pre> 1507 <h3>Attributes</h3> 1508 <table> 1509 <thead> 1510 <tr> 1511 <th>Name</th> 1512 <th>Type</th> 1513 <th>Description</th> 1514 <th>Default</th> 1515 <th>Required</th> 1516 </tr> 1517 </thead> 1518 <tbody> 1519 <tr> 1520 <td>file</td> 1521 <td>String</td> 1522 <td>The file to import.</td> 1523 <td>n/a</td> 1524 <td>Yes</td> 1525 </tr> 1526 <tr> 1527 <td>optional</td> 1528 <td>Boolean</td> 1529 <td>If true, do not stop the build if the file does not exist.</td> 1530 <td>false</td> 1531 <td>No</td> 1532 </tr> 1533 </tbody> 1534 </table> 1535 1536 <h2> 1537 <a name="IncludePathTask"></a>IncludePathTask 1538 </h2> 1539 <p>Sets the PHP include_path configuration option for the duration 1540 of this phing run.</p> 1541 <h3>Example</h3> 1542 <pre><includepath classpath="new/path/here" /> 1322 <h3>Attributes</h3> 1323 <table> 1324 <thead> 1325 <tr> 1326 <th>Name</th> 1327 <th>Type</th> 1328 <th>Description</th> 1329 <th>Default</th> 1330 <th>Required</th> 1331 </tr> 1332 </thead> 1333 <tbody> 1334 <tr> 1335 <td>file</td> 1336 <td>String</td> 1337 <td>The file to import.</td> 1338 <td>n/a</td> 1339 <td>Yes</td> 1340 </tr> 1341 <tr> 1342 <td>optional</td> 1343 <td>Boolean</td> 1344 <td>If true, do not stop the build if the file does not exist.</td> 1345 <td>false</td> 1346 <td>No</td> 1347 </tr> 1348 </tbody> 1349 </table> 1350 <h2> 1351 <a name="IncludePathTask"></a>IncludePathTask </h2> 1352 <p>Sets the PHP include_path configuration option for the duration of this phing run.</p> 1353 <h3>Example</h3> 1354 <pre><includepath classpath="new/path/here" /> 1543 1355 <includepath classpath="path1:path2" /></pre> 1544 <h3>Attributes</h3> 1545 <table> 1546 <thead> 1547 <tr> 1548 <th>Name</th> 1549 <th>Type</th> 1550 <th>Description</th> 1551 <th>Default</th> 1552 <th>Required</th> 1553 </tr> 1554 </thead> 1555 <tbody> 1556 <tr> 1557 <td>classpath</td> 1558 <td>String</td> 1559 <td>the new include path[s]</td> 1560 <td>n/a</td> 1561 <td>Yes</td> 1562 </tr> 1563 </tbody> 1564 </table> 1565 1566 <h2> 1567 <a name="InputTask"></a>InputTask 1568 </h2> 1569 <p> 1570 The <em>InputTask</em> can be used to interactively set property 1571 values based on input from the console (or other Reader). 1572 </p> 1573 <h3>Example</h3> 1574 <pre> 1356 <h3>Attributes</h3> 1357 <table> 1358 <thead> 1359 <tr> 1360 <th>Name</th> 1361 <th>Type</th> 1362 <th>Description</th> 1363 <th>Default</th> 1364 <th>Required</th> 1365 </tr> 1366 </thead> 1367 <tbody> 1368 <tr> 1369 <td>classpath</td> 1370 <td>String</td> 1371 <td>the new include path[s]</td> 1372 <td>n/a</td> 1373 <td>Yes</td> 1374 </tr> 1375 </tbody> 1376 </table> 1377 <h2> 1378 <a name="InputTask"></a>InputTask </h2> 1379 <p> The <em>InputTask</em> can be used to interactively set property values based on input 1380 from the console (or other Reader). </p> 1381 <h3>Example</h3> 1382 <pre> 1575 1383 <!-- Getting string input --> 1576 1384 <echo>HTML pages installing to: ${documentRoot}</echo> … … 1591 1399 </input> 1592 1400 </pre> 1593 <h3>Attributes</h3> 1594 <table> 1595 <thead> 1596 <tr> 1597 <th>Name</th> 1598 <th>Type</th> 1599 <th>Description</th> 1600 <th>Default</th> 1601 <th>Required</th> 1602 </tr> 1603 </thead> 1604 <tbody> 1605 <tr> 1606 <td>propertyName</td> 1607 <td>String</td> 1608 <td>The name of the property to set.</td> 1609 <td>n/a</td> 1610 <td>Yes</td> 1611 </tr> 1612 <tr> 1613 <td>defaultValue</td> 1614 <td>String</td> 1615 <td>The default value to be set if no new value is provided.</td> 1616 <td>n/a</td> 1617 <td>Yes</td> 1618 </tr> 1619 <tr> 1620 <td>message</td> 1621 <td>String</td> 1622 <td>Prompt text (same as CDATA).</td> 1623 <td>n/a</td> 1624 <td>No</td> 1625 </tr> 1626 <tr> 1627 <td>promptChar</td> 1628 <td>String</td> 1629 <td>The prompt character to follow prompt text.</td> 1630 <td>n/a</td> 1631 <td>No</td> 1632 </tr> 1633 <tr> 1634 <td>validArgs</td> 1635 <td>String</td> 1636 <td>Comma-separated list of valid choices the user must supply. 1637 If used, one of these options must be chosen.</td> 1638 <td>n/a</td> 1639 <td>No</td> 1640 </tr> 1641 <!-- TODO : Add "os" as soon as it is supported --> 1642 </tbody> 1643 </table> 1644 1645 <h2> 1646 <a name="LoadFileTask"></a>LoadFileTask 1647 </h2> 1648 <p> 1649 The <em>LoadFileTask</em> loads the contents of a (text) file into a single property. 1650 </p> 1651 <h3>Example</h3> 1652 <pre> 1401 <h3>Attributes</h3> 1402 <table> 1403 <thead> 1404 <tr> 1405 <th>Name</th> 1406 <th>Type</th> 1407 <th>Description</th> 1408 <th>Default</th> 1409 <th>Required</th> 1410 </tr> 1411 </thead> 1412 <tbody> 1413 <tr> 1414 <td>propertyName</td> 1415 <td>String</td> 1416 <td>The name of the property to set.</td> 1417 <td>n/a</td> 1418 <td>Yes</td> 1419 </tr> 1420 <tr> 1421 <td>defaultValue</td> 1422 <td>String</td> 1423 <td>The default value to be set if no new value is provided.</td> 1424 <td>n/a</td> 1425 <td>Yes</td> 1426 </tr> 1427 <tr> 1428 <td>message</td> 1429 <td>String</td> 1430 <td>Prompt text (same as CDATA).</td> 1431 <td>n/a</td> 1432 <td>No</td> 1433 </tr> 1434 <tr> 1435 <td>promptChar</td> 1436 <td>String</td> 1437 <td>The prompt character to follow prompt text.</td> 1438 <td>n/a</td> 1439 <td>No</td> 1440 </tr> 1441 <tr> 1442 <td>validArgs</td> 1443 <td>String</td> 1444 <td>Comma-separated list of valid choices the user must supply. If used, one of 1445 these options must be chosen.</td> 1446 <td>n/a</td> 1447 <td>No</td> 1448 </tr> 1449 <!-- TODO : Add "os" as soon as it is supported --> 1450 </tbody> 1451 </table> 1452 <h2> 1453 <a name="LoadFileTask"></a>LoadFileTask </h2> 1454 <p> The <em>LoadFileTask</em> loads the contents of a (text) file into a single property. </p> 1455 <h3>Example</h3> 1456 <pre> 1653 1457 <loadfile property="version" file="version.txt"/> 1654 1458 </pre> 1655 <h3>Attributes</h3> 1656 <table> 1657 <thead> 1658 <tr> 1659 <th>Name</th> 1660 <th>Type</th> 1661 <th>Description</th> 1662 <th>Default</th> 1663 <th>Required</th> 1664 </tr> 1665 </thead> 1666 <tbody> 1667 <tr> 1668 <td>property</td> 1669 <td>String</td> 1670 <td>The name of the property to set.</td> 1671 <td>n/a</td> 1672 <td>Yes</td> 1673 </tr> 1674 <tr> 1675 <td>file (or <em>srcFile</em>)</td> 1676 <td>String</td> 1677 <td>The file to load.</td> 1678 <td>n/a</td> 1679 <td>Yes</td> 1680 </tr> 1681 </tbody> 1682 </table> 1683 <h3>Supported Nested Tags:</h3> 1684 <ul> 1685 <li>filterchain</li> 1686 </ul> 1687 1688 <h2> 1689 <a name="MkdirTask"></a>MkdirTask 1690 </h2> 1691 <p>Creates a directory, including any necessary but non-existent parent directories. Does nothing if the directory already exists.</p> 1692 <h3>Example</h3> 1693 <pre><-- Create a temp directory --> 1459 <h3>Attributes</h3> 1460 <table> 1461 <thead> 1462 <tr> 1463 <th>Name</th> 1464 <th>Type</th> 1465 <th>Description</th> 1466 <th>Default</th> 1467 <th>Required</th> 1468 </tr> 1469 </thead> 1470 <tbody> 1471 <tr> 1472 <td>property</td> 1473 <td>String</td> 1474 <td>The name of the property to set.</td> 1475 <td>n/a</td> 1476 <td>Yes</td> 1477 </tr> 1478 <tr> 1479 <td>file (or <em>srcFile</em>)</td> 1480 <td>String</td> 1481 <td>The file to load.</td> 1482 <td>n/a</td> 1483 <td>Yes</td> 1484 </tr> 1485 </tbody> 1486 </table> 1487 <h3>Supported Nested Tags:</h3> 1488 <ul> 1489 <li>filterchain</li> 1490 </ul> 1491 <h2> 1492 <a name="MkdirTask"></a>MkdirTask </h2> 1493 <p>Creates a directory, including any necessary but non-existent parent directories. Does 1494 nothing if the directory already exists.</p> 1495 <h3>Example</h3> 1496 <pre><-- Create a temp directory --> 1694 1497 <mkdir dir="/tmp/foo" /> 1695 1498 … … 1697 1500 <mkdir dir="${dirs.install}/tmp" /> 1698 1501 </pre> 1699 <h3>Attributes</h3> 1700 <table> 1701 <thead> 1702 <tr> 1703 <th>Name</th> 1704 <th>Type</th> 1705 <th>Description</th> 1706 <th>Default</th> 1707 <th>Required</th> 1708 </tr> 1709 </thead> 1710 <tbody> 1711 <tr> 1712 <td>dir</td> 1713 <td>String</td> 1714 <td>The directory that is to be created.</td> 1715 <td>n/a</td> 1716 <td>Yes</td> 1717 </tr> 1718 <tr> 1719 <td>mode</td> 1720 <td>Integer</td> 1721 <td>The mode to create the directory with.</td> 1722 <td>0755</td> 1723 <td>No</td> 1724 </tr> 1725 </tbody> 1726 </table> 1727 1728 <h2> 1729 <a name="MoveTask"></a>MoveTask 1730 </h2> 1731 <p>Moves a file or directory to a new file or directory. By 1732 default, the destination file is overwritten if it already exists. 1733 When overwrite is turned off, then files are only moved if the source 1734 file is newer than the destination file, or when the destination file 1735 does not exist.</p> 1736 <p>Source files and directories are only deleted if the file or 1737 directory has been copied to the destination successfully.</p> 1738 <h3>Example</h3> 1739 <pre><-- The following will move the file "somefile.txt" to "/tmp" and 1502 <h3>Attributes</h3> 1503 <table> 1504 <thead> 1505 <tr> 1506 <th>Name</th> 1507 <th>Type</th> 1508 <th>Description</th> 1509 <th>Default</th> 1510 <th>Required</th> 1511 </tr> 1512 </thead> 1513 <tbody> 1514 <tr> 1515 <td>dir</td> 1516 <td>String</td> 1517 <td>The directory that is to be created.</td> 1518 <td>n/a</td> 1519 <td>Yes</td> 1520 </tr> 1521 <tr> 1522 <td>mode</td> 1523 <td>Integer</td> 1524 <td>The mode to create the directory with.</td> 1525 <td>0755</td> 1526 <td>No</td> 1527 </tr> 1528 </tbody> 1529 </table> 1530 <h2> 1531 <a name="MoveTask"></a>MoveTask </h2> 1532 <p>Moves a file or directory to a new file or directory. By default, the destination file is 1533 overwritten if it already exists. When overwrite is turned off, then files are only 1534 moved if the source file is newer than the destination file, or when the destination 1535 file does not exist.</p> 1536 <p>Source files and directories are only deleted if the file or directory has been copied to 1537 the destination successfully.</p> 1538 <h3>Example</h3> 1539 <pre><-- The following will move the file "somefile.txt" to "/tmp" and 1740 1540 change its filename to "anotherfile.bak". It will overwrite 1741 1541 an existing file. --> … … 1747 1547 <move file="/tmp" todir="/home/default/tmp" includeemptydirs="true" /> 1748 1548 </pre> 1749 <h3>Attributes and Nested Elements</h3> 1750 <p> 1751 For further documentation, see <a href="#CopyTask">CopyTask</a>, since 1752 MoveTask only is a child of CopyTask and inherits all attributes. 1753 </p> 1754 1755 <h2> 1756 <a name="PhingTask"></a>PhingTask 1757 </h2> 1758 <p> 1759 This task calls another build file. You may specify the target that is 1760 to be called within the build file. Additionally, the 1761 <code><phing></code> 1762 Tag may contain 1763 <code><property></code> 1764 Tags (see <a href="#PropertyTask">PropertyTask</a>). 1765 </p> 1766 <h3>Example</h3> 1767 <pre><-- Call target "xslttest" from buildfile "alternativebuildfile.xml" --> 1549 <h3>Attributes and Nested Elements</h3> 1550 <p> For further documentation, see <a href="#CopyTask">CopyTask</a>, since MoveTask only is 1551 a child of CopyTask and inherits all attributes. </p> 1552 <h2> 1553 <a name="PhingTask"></a>PhingTask </h2> 1554 <p> This task calls another build file. You may specify the target that is to be called 1555 within the build file. Additionally, the <code><phing></code> Tag may contain 1556 <code><property></code> Tags (see <a href="#PropertyTask">PropertyTask</a>). </p> 1557 <h3>Example</h3> 1558 <pre><-- Call target "xslttest" from buildfile "alternativebuildfile.xml" --> 1768 1559 <phing phingfile="alternativebuild.xml" inheritRefs="true" target="xslttest" /> 1769 1560 … … 1774 1565 </phing> 1775 1566 </pre> 1776 <h3>Attributes</h3> 1777 <table> 1778 <thead> 1779 <tr> 1780 <th>Name</th> 1781 <th>Type</th> 1782 <th>Description</th> 1783 <th>Default</th> 1784 <th>Required</th> 1785 </tr> 1786 </thead> 1787 <tbody> 1788 <tr> 1789 <td>inheritAll</td> 1790 <td>Boolean</td> 1791 <td>If true, pass all properties to the new phing project.</td> 1792 <td>true</td> 1793 <td>No</td> 1794 </tr> 1795 <tr> 1796 <td>inheritRefs</td> 1797 <td>Boolean</td> 1798 <td>If true, pass all references to the new phing project.</td> 1799 <td>false</td> 1800 <td>No</td> 1801 </tr> 1802 <tr> 1803 <td>dir</td> 1804 <td>String</td> 1805 <td>The directory to use as a base directory for the new phing 1806 project. Default is the current project's basedir, unless 1807 inheritall has been set to <em>false</em>, in which case it doesn't 1808 have a default value. This will override the basedir setting of the 1809 called project.</td> 1810 <td>n/a</td> 1811 <td>No</td> 1812 </tr> 1813 <tr> 1814 <td>phingFile</td> 1815 <td>String</td> 1816 <td>The build file to use. Defaults to "build.xml". 1817 This file is expected to be a filename relative to the dir 1818 attribute given.</td> 1819 <td>n/a</td> 1820 <td>Yes</td> 1821 </tr> 1822 <tr> 1823 <td>target</td> 1824 <td>String</td> 1825 <td>The target of the new Phing project to execute. Default is 1826 the new project's default target.</td> 1827 <td>n/a</td> 1828 <td>No</td> 1829 </tr> 1830 <tr> 1831 <td>haltonfailure</td> 1832 <td>Boolean</td> 1833 <td>If true, fail the build process when the called build fails</td> 1834 <td>false</td> 1835 <td>No</td> 1836 </tr> 1837 </tbody> 1838 </table> 1839 1840 <h3>Supported Nested Tags</h3> 1841 <ul> 1842 <li>Fileset</li> 1843 </ul> 1844 1845 <h3>Base directory of the new project</h3> 1846 <p> 1847 The base directory of the new project is set dependant on the <em>dir</em> 1848 and the <em>inheritAll</em> attribute. This is important to keep in 1849 mind or else you might run into bugs in your build.xml's. The 1850 following table shows when which value is used: 1851 </p> 1852 <table> 1853 <tbody> 1854 <tr> 1855 <th><em>dir</em> attribute</th> 1856 <th><em>inheritAll</em> attribute</th> 1857 <th>new project's basedir</th> 1858 </tr> 1859 <tr> 1860 <td>value provided</td> 1861 <td>true</td> 1862 <td>value of <em>dir</em> attribute</td> 1863 </tr> 1864 <tr> 1865 <td>value provided</td> 1866 <td>false</td> 1867 <td>value of <em>dir</em> attribute</td> 1868 </tr> 1869 <tr> 1870 <td>omitted</td> 1871 <td>true</td> 1872 <td>basedir of calling task (the build file containing the <em><phing></em> 1873 call.</td> 1874 </tr> 1875 <tr> 1876 <td>omitted</td> 1877 <td>false</td> 1878 <td>basedir attribute of the <em><project></em> element 1879 of the new project</td> 1880 </tr> 1881 </tbody> 1882 </table> 1883 1884 <h2> 1885 <a name="PhingCallTask"></a>PhingCallTask 1886 </h2> 1887 <p> 1888 The PhingCallTask calls a target within the same Phing project. 1889 </p> 1890 1891 <p> 1892 A <em><phingcall></em> tag may contain <em><property></em> 1893 tags that define new properties. These properties are only set if properties 1894 of the same name have not been set outside 1895 the 1896 <code>"phingcall"</code> 1897 tag. 1898 </p> 1899 1900 <p> 1901 <b>Important note about scope:</b> every <em><phingcall></em> tag 1902 creates a new local scope. Thus, any properties or other variables set inside 1903 that scope will cease to exist (or revert to their previous value) once 1904 the <em><phingcall></em> tag completes. 1905 </p> 1906 1907 <h3>Example</h3> 1908 <pre><target name="foo"> 1567 <h3>Attributes</h3> 1568 <table> 1569 <thead> 1570 <tr> 1571 <th>Name</th> 1572 <th>Type</th> 1573 <th>Description</th> 1574 <th>Default</th> 1575 <th>Required</th> 1576 </tr> 1577 </thead> 1578 <tbody> 1579 <tr> 1580 <td>inheritAll</td> 1581 <td>Boolean</td> 1582 <td>If true, pass all properties to the new phing project.</td> 1583 <td>true</td> 1584 <td>No</td> 1585 </tr> 1586 <tr> 1587 <td>inheritRefs</td> 1588 <td>Boolean</td> 1589 <td>If true, pass all references to the new phing project.</td> 1590 <td>false</td> 1591 <td>No</td> 1592 </tr> 1593 <tr> 1594 <td>dir</td> 1595 <td>String</td> 1596 <td>The directory to use as a base directory for the new phing project. Default 1597 is the current project's basedir, unless inheritall has been set to 1598 <em>false</em>, in which case it doesn't have a default value. This will 1599 override the basedir setting of the called project.</td> 1600 <td>n/a</td> 1601 <td>No</td> 1602 </tr> 1603 <tr> 1604 <td>phingFile</td> 1605 <td>String</td> 1606 <td>The build file to use. Defaults to "build.xml". This file is 1607 expected to be a filename relative to the dir attribute given.</td> 1608 <td>n/a</td> 1609 <td>Yes</td> 1610 </tr> 1611 <tr> 1612 <td>target</td> 1613 <td>String</td> 1614 <td>The target of the new Phing project to execute. Default is the new project's 1615 default target.</td> 1616 <td>n/a</td> 1617 <td>No</td> 1618 </tr> 1619 <tr> 1620 <td>haltonfailure</td> 1621 <td>Boolean</td> 1622 <td>If true, fail the build process when the called build fails</td> 1623 <td>false</td> 1624 <td>No</td> 1625 </tr> 1626 </tbody> 1627 </table> 1628 <h3>Supported Nested Tags</h3> 1629 <ul> 1630 <li>Fileset</li> 1631 </ul> 1632 <h3>Base directory of the new project</h3> 1633 <p> The base directory of the new project is set dependant on the <em>dir</em> and the 1634 <em>inheritAll</em> attribute. This is important to keep in mind or else you might 1635 run into bugs in your build.xml's. The following table shows when which value is used: </p> 1636 <table> 1637 <tbody> 1638 <tr> 1639 <th><em>dir</em> attribute</th> 1640 <th><em>inheritAll</em> attribute</th> 1641 <th>new project's basedir</th> 1642 </tr> 1643 <tr> 1644 <td>value provided</td> 1645 <td>true</td> 1646 <td>value of <em>dir</em> attribute</td> 1647 </tr> 1648 <tr> 1649 <td>value provided</td> 1650 <td>false</td> 1651 <td>value of <em>dir</em> attribute</td> 1652 </tr> 1653 <tr> 1654 <td>omitted</td> 1655 <td>true</td> 1656 <td>basedir of calling task (the build file containing the 1657 <em><phing></em> call.</td> 1658 </tr> 1659 <tr> 1660 <td>omitted</td> 1661 <td>false</td> 1662 <td>basedir attribute of the <em><project></em> element of the new 1663 project</td> 1664 </tr> 1665 </tbody> 1666 </table> 1667 <h2> 1668 <a name="PhingCallTask"></a>PhingCallTask </h2> 1669 <p> The PhingCallTask calls a target within the same Phing project. </p> 1670 <p> A <em><phingcall></em> tag may contain <em><property></em> tags that define 1671 new properties. These properties are only set if properties of the same name have not 1672 been set outside the <code>"phingcall"</code> tag. </p> 1673 <p> 1674 <b>Important note about scope:</b> every <em><phingcall></em> tag creates a new 1675 local scope. Thus, any properties or other variables set inside that scope will cease to 1676 exist (or revert to their previous value) once the <em><phingcall></em> tag 1677 completes. </p> 1678 <h3>Example</h3> 1679 <pre><target name="foo"> 1909 1680 <phingcall target="bar"> 1910 1681 <property name="property1" value="aaaaa" /> … … 1912 1683 </phingcall> 1913 1684 </target></pre> 1914 1915 <p> 1916 In the example above, the properties <em>property1</em> 1917 and <em>foo</em> are defined and only accessible inside the called 1918 target. 1919 </p> 1920 1921 <pre><target name="bar" depends="init"> 1685 <p> In the example above, the properties <em>property1</em> and <em>foo</em> are defined and 1686 only accessible inside the called target. </p> 1687 <pre><target name="bar" depends="init"> 1922 1688 <echo message="prop is ${property1} ${foo}" /> 1923 1689 </target></pre> 1924 <h3>Parameters</h3> 1925 <table> 1926 <thead> 1927 <tr> 1928 <th>Name</th> 1929 <th>Type/Values</th> 1930 <th>Description</th> 1931 <th>Default</th> 1932 <th>Required</th> 1933 </tr> 1934 </thead> 1935 <tbody> 1936 <tr> 1937 <td>target</td> 1938 <td>string</td> 1939 <td>The name of the target in the same project that is to be 1940 called.</td> 1941 <td>n/a</td> 1942 <td>Yes</td> 1943 </tr> 1944 <!-- Not used yet. TODO: Document if it is 1690 <h3>Parameters</h3> 1691 <table> 1692 <thead> 1693 <tr> 1694 <th>Name</th> 1695 <th>Type/Values</th> 1696 <th>Description</th> 1697 <th>Default</th> 1698 <th>Required</th> 1699 </tr> 1700 </thead> 1701 <tbody> 1702 <tr> 1703 <td>target</td> 1704 <td>string</td> 1705 <td>The name of the target in the same project that is to be called.</td> 1706 <td>n/a</td> 1707 <td>Yes</td> 1708 </tr> 1709 <!-- Not used yet. TODO: Document if it is 1945 1710 <tr> 1946 1711 <td>inheritAll</td> … … 1961 1726 </tr> 1962 1727 --> 1963 </tbody> 1964 </table> 1965 1966 <h2> 1967 <a name="PhpEvalTask"></a>PhpEvalTask 1968 </h2> 1969 <p>With the PhpEvalTask, you can set a property to the results of 1970 evaluating a PHP expression or the result returned by a 1971 function/method call.</p> 1972 <h3>Examples</h3> 1973 <pre><php function="crypt" returnProperty="enc_passwd"> 1728 </tbody> 1729 </table> 1730 <h2> 1731 <a name="PhpEvalTask"></a>PhpEvalTask </h2> 1732 <p>With the PhpEvalTask, you can set a property to the results of evaluating a PHP 1733 expression or the result returned by a function/method call.</p> 1734 <h3>Examples</h3> 1735 <pre><php function="crypt" returnProperty="enc_passwd"> 1974 1736 <param value="${auth.root_passwd}"/> 1975 1737 </php></pre> 1976 <pre><php expression="3 + 4" returnProperty="sum"/></pre> 1977 <pre><php expression="echo 'test';"></pre> 1978 <h3>Attributes</h3> 1979 <table> 1980 <thead> 1981 <tr> 1982 <th>Name</th> 1983 <th>Type</th> 1984 <th>Description</th> 1985 <th>Default</th> 1986 <th>Required</th> 1987 </tr> 1988 </thead> 1989 <tbody> 1990 <tr> 1991 <td>function</td> 1992 <td>String</td> 1993 <td>The name of the Property.</td> 1994 <td>n/a</td> 1995 <td rowspan="2">One of these is required.</td> 1996 </tr> 1997 <tr> 1998 <td>expression</td> 1999 <td>String</td> 2000 <td>The expression to evaluate.</td> 2001 <td>n/a</td> 2002 </tr> 2003 <tr> 2004 <td>class</td> 2005 <td>String</td> 2006 <td>The static class which contains function.</td> 2007 <td>n/a</td> 2008 <td>No</td> 2009 </tr> 2010 <tr> 2011 <td>returnProperty</td> 2012 <td>String</td> 2013 <td>The name of the property to set with result of expression 2014 or function call. <strong>Note:</strong> if this attribute is set, 2015 the expression must return a value.</td> 2016 <td>n/a</td> 2017 <td>No</td> 2018 </tr> 2019 <tr> 2020 <td>level</td> 2021 <td>String</td> 2022 <td>Control the level at which phplint reports status messages. 2023 One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 2024 <em>debug</em>.</td> 2025 <td><em>info</em></td> 2026 <td>No</td> 2027 </tr> 2028 </tbody> 2029 </table> 2030 <h3>Supported Nested Tags</h3> 2031 <ul> 2032 <li>param</li> 2033 </ul> 2034 <h2> 2035 <a name="PropertyTask"></a>PropertyTask 2036 </h2> 2037 <p> 2038 With PropertyTask, you can define <em>user</em> properties in your 2039 build file. 2040 </p> 2041 2042 <p> 2043 <b>Important note about scope:</b> when the <em><property></em> tag 2044 is called inside a <em><phingcall></em> tag, any properties are 2045 set in a new local scope. Thus, any properties or other variables set inside 2046 that scope will cease to exist (or revert to their previous value) once 2047 the parent <em><phingcall></em> tag completes. 2048 </p> 2049 2050 <h3>Example</h3> 2051 <pre><property name="strings.test" value="Harr harr, more power!" /> 1738 <pre><php expression="3 + 4" returnProperty="sum"/></pre> 1739 <pre><php expression="echo 'test';"></pre> 1740 <h3>Attributes</h3> 1741 <table> 1742 <thead> 1743 <tr> 1744 <th>Name</th> 1745 <th>Type</th> 1746 <th>Description</th> 1747 <th>Default</th> 1748 <th>Required</th> 1749 </tr> 1750 </thead> 1751 <tbody> 1752 <tr> 1753 <td>function</td> 1754 <td>String</td> 1755 <td>The name of the Property.</td> 1756 <td>n/a</td> 1757 <td rowspan="2">One of these is required.</td> 1758 </tr> 1759 <tr> 1760 <td>expression</td> 1761 <td>String</td> 1762 <td>The expression to evaluate.</td> 1763 <td>n/a</td> 1764 </tr> 1765 <tr> 1766 <td>class</td> 1767 <td>String</td> 1768 <td>The static class which contains function.</td> 1769 <td>n/a</td> 1770 <td>No</td> 1771 </tr> 1772 <tr> 1773 <td>returnProperty</td> 1774 <td>String</td> 1775 <td>The name of the property to set with result of expression or function call. 1776 <strong>Note:</strong> if this attribute is set, the expression must 1777 return a value.</td> 1778 <td>n/a</td> 1779 <td>No</td> 1780 </tr> 1781 <tr> 1782 <td>level</td> 1783 <td>String</td> 1784 <td>Control the level at which phplint reports status messages. One of 1785 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 1786 <em>debug</em>.</td> 1787 <td><em>info</em></td> 1788 <td>No</td> 1789 </tr> 1790 </tbody> 1791 </table> 1792 <h3>Supported Nested Tags</h3> 1793 <ul> 1794 <li>param</li> 1795 </ul> 1796 <h2> 1797 <a name="PropertyTask"></a>PropertyTask </h2> 1798 <p> With PropertyTask, you can define <em>user</em> properties in your build file. </p> 1799 <p> 1800 <b>Important note about scope:</b> when the <em><property></em> tag is called 1801 inside a <em><phingcall></em> tag, any properties are set in a new local scope. 1802 Thus, any properties or other variables set inside that scope will cease to exist (or 1803 revert to their previous value) once the parent <em><phingcall></em> tag 1804 completes. </p> 1805 <h3>Example</h3> 1806 <pre><property name="strings.test" value="Harr harr, more power!" /> 2052 1807 <echo message="${strings.test}" /> 2053 1808 … … 2057 1812 <property file="build.properties" /> 2058 1813 </pre> 2059 <h3>Attributes</h3> 2060 <table> 2061 <thead> 2062 <tr> 2063 <th>Name</th> 2064 <th>Type</th> 2065 <th>Description</th> 2066 <th>Default</th> 2067 <th>Required</th> 2068 </tr> 2069 </thead> 2070 <tbody> 2071 <tr> 2072 <td>name</td> 2073 <td>String</td> 2074 <td>The name of the Property.</td> 2075 <td>n/a</td> 2076 <td>Yes (unless using file)</td> 2077 </tr> 2078 <tr> 2079 <td>value</td> 2080 <td>String</td> 2081 <td>The value of the Property.</td> 2082 <td>n/a</td> 2083 <td>Yes (unless using file)</td> 2084 </tr> 2085 <tr> 2086 <td>override</td> 2087 <td>Boolean</td> 2088 <td>Whether to force override of existing value.</td> 2089 <td>false</td> 2090 <td>No</td> 2091 </tr> 2092 <tr> 2093 <td>file</td> 2094 <td>String</td> 2095 <td>Path to properties file.</td> 2096 <td>n/a</td> 2097 <td>No</td> 2098 </tr> 2099 </tbody> 2100 </table> 2101 2102 <h2> 2103 <a name="PropertyPromptTask"></a>PropertyPromptTask 2104 </h2> 2105 <p> 2106 PropertyPromptTask is a simple task to read in user input into a 2107 property. If you need something more advanced, see the <a 2108 href="#InputTask">InputTask</a>. 2109 </p> 2110 <h3>Example</h3> 2111 2112 <pre><propertyprompt propertyName="someprop" defaultValue="/var/www" 1814 <h3>Attributes</h3> 1815 <table> 1816 <thead> 1817 <tr> 1818 <th>Name</th> 1819 <th>Type</th> 1820 <th>Description</th> 1821 <th>Default</th> 1822 <th>Required</th> 1823 </tr> 1824 </thead> 1825 <tbody> 1826 <tr> 1827 <td>name</td> 1828 <td>String</td> 1829 <td>The name of the Property.</td> 1830 <td>n/a</td> 1831 <td>Yes (unless using file)</td> 1832 </tr> 1833 <tr> 1834 <td>value</td> 1835 <td>String</td> 1836 <td>The value of the Property.</td> 1837 <td>n/a</td> 1838 <td>Yes (unless using file)</td> 1839 </tr> 1840 <tr> 1841 <td>override</td> 1842 <td>Boolean</td> 1843 <td>Whether to force override of existing value.</td> 1844 <td>false</td> 1845 <td>No</td> 1846 </tr> 1847 <tr> 1848 <td>file</td> 1849 <td>String</td> 1850 <td>Path to properties file.</td> 1851 <td>n/a</td> 1852 <td>No</td> 1853 </tr> 1854 </tbody> 1855 </table> 1856 <h2> 1857 <a name="PropertyPromptTask"></a>PropertyPromptTask </h2> 1858 <p> PropertyPromptTask is a simple task to read in user input into a property. If you need 1859 something more advanced, see the <a href="#InputTask">InputTask</a>. </p> 1860 <h3>Example</h3> 1861 <pre><propertyprompt propertyName="someprop" defaultValue="/var/www" 2113 1862 promptText="Enter your web root" /> 2114 1863 <echo>${someprop}</echo> 2115 1864 </pre> 2116 <h3>Attributes</h3> 2117 <table> 2118 <thead> 2119 <tr> 2120 <th>Name</th> 2121 <th>Type</th> 2122 <th>Description</th> 2123 <th>Default</th> 2124 <th>Required</th> 2125 </tr> 2126 </thead> 2127 <tbody> 2128 <tr> 2129 <td>propertyName</td> 2130 <td>String</td> 2131 <td>The name of the Property to set.</td> 2132 <td>n/a</td> 2133 <td>Yes</td> 2134 </tr> 2135 <tr> 2136 <td>promptText</td> 2137 <td>String</td> 2138 <td>The text to use for the prompt.</td> 2139 <td>n/a</td> 2140 <td>Yes</td> 2141 </tr> 2142 <tr> 2143 <td>promptCharacter</td> 2144 <td>String</td> 2145 <td>The character to use after the prompt.</td> 2146 <td>?</td> 2147 <td>No</td> 2148 </tr> 2149 <tr> 2150 <td>defaultValue</td> 2151 <td>String</td> 2152 <td>A default value to use (if user just hits enter).</td> 2153 <td>n/a</td> 2154 <td>No</td> 2155 </tr> 2156 <tr> 2157 <td>useExistingValue</td> 2158 <td>String</td> 2159 <td>Whether existing property should be used if available. 2160 (This will result in user only being prompted if the propertyName 2161 property is not already set.)</td> 2162 <td>false</td> 2163 <td>No</td> 2164 </tr> 2165 </tbody> 2166 </table> 2167 2168 <h2> 2169 <a name="ReflexiveTask"></a>ReflexiveTask 2170 </h2> 2171 <p>The ReflexiveTask performs operations on files. It is 2172 essentially a convenient way to transform (using filter chains) files 2173 without copying them.</p> 2174 <h3>Example</h3> 2175 <pre><reflexive> 1865 <h3>Attributes</h3> 1866 <table> 1867 <thead> 1868 <tr> 1869 <th>Name</th> 1870 <th>Type</th> 1871 <th>Description</th> 1872 <th>Default</th> 1873 <th>Required</th> 1874 </tr> 1875 </thead> 1876 <tbody> 1877 <tr> 1878 <td>propertyName</td> 1879 <td>String</td> 1880 <td>The name of the Property to set.</td> 1881 <td>n/a</td> 1882 <td>Yes</td> 1883 </tr> 1884 <tr> 1885 <td>promptText</td> 1886 <td>String</td> 1887 <td>The text to use for the prompt.</td> 1888 <td>n/a</td> 1889 <td>Yes</td> 1890 </tr> 1891 <tr> 1892 <td>promptCharacter</td> 1893 <td>String</td> 1894 <td>The character to use after the prompt.</td> 1895 <td>?</td> 1896 <td>No</td> 1897 </tr> 1898 <tr> 1899 <td>defaultValue</td> 1900 <td>String</td> 1901 <td>A default value to use (if user just hits enter).</td> 1902 <td>n/a</td> 1903 <td>No</td> 1904 </tr> 1905 <tr> 1906 <td>useExistingValue</td> 1907 <td>String</td> 1908 <td>Whether existing property should be used if available. (This will result in 1909 user only being prompted if the propertyName property is not already 1910 set.)</td> 1911 <td>false</td> 1912 <td>No</td> 1913 </tr> 1914 </tbody> 1915 </table> 1916 <h2> 1917 <a name="ReflexiveTask"></a>ReflexiveTask </h2> 1918 <p>The ReflexiveTask performs operations on files. It is essentially a convenient way to 1919 transform (using filter chains) files without copying them.</p> 1920 <h3>Example</h3> 1921 <pre><reflexive> 2176 1922 <fileset dir="."> 2177 1923 <include pattern="*.html"> … … 2183 1929 </filterchain> 2184 1930 </reflexive></pre> 2185 <h3>Attributes</h3> 2186 <table> 2187 <thead> 2188 <tr> 2189 <th>Name</th> 2190 <th>Type</th> 2191 <th>Description</th> 2192 <th>Default</th> 2193 <th>Required</th> 2194 </tr> 2195 </thead> 2196 <tbody> 2197 <tr> 2198 <td>file</td> 2199 <td>String</td> 2200 <td>A single file to be processed.</td> 2201 <td>n/a</td> 2202 <td>Yes (unless <fileset> provided)</td> 2203 </tr> 2204 </tbody> 2205 </table> 2206 <h3>Supported Nested Tags:</h3> 2207 <ul> 2208 <li>fileset</li> 2209 <li>filterchain</li> 2210 </ul> 2211 <h2> 2212 <a name="ResolvePathTask"></a>ResolvePathTask 2213 </h2> 2214 <p>The ResolvePathTask turns a relative path into an absolute path, 2215 with respect to specified directory or the project basedir (if no dir 2216 attribute specified).</p> 2217 <p>This task is useful for turning a user-defined relative path 2218 into an absolute path in cases where buildfiles will be called in 2219 different directories. Without this task, buildfiles lower in the 2220 directory tree would mis-interpret the user-defined relative paths.</p> 2221 <h3>Example</h3> 2222 <pre><property name="relative_path" value="./dirname"/> 1931 <h3>Attributes</h3> 1932 <table> 1933 <thead> 1934 <tr> 1935 <th>Name</th> 1936 <th>Type</th> 1937 <th>Description</th> 1938 <th>Default</th> 1939 <th>Required</th> 1940 </tr> 1941 </thead> 1942 <tbody> 1943 <tr> 1944 <td>file</td> 1945 <td>String</td> 1946 <td>A single file to be processed.</td> 1947 <td>n/a</td> 1948 <td>Yes (unless <fileset> provided)</td> 1949 </tr> 1950 </tbody> 1951 </table> 1952 <h3>Supported Nested Tags:</h3> 1953 <ul> 1954 <li>fileset</li> 1955 <li>filterchain</li> 1956 </ul> 1957 <h2> 1958 <a name="ResolvePathTask"></a>ResolvePathTask </h2> 1959 <p>The ResolvePathTask turns a relative path into an absolute path, with respect to 1960 specified directory or the project basedir (if no dir attribute specified).</p> 1961 <p>This task is useful for turning a user-defined relative path into an absolute path in 1962 cases where buildfiles will be called in different directories. Without this task, 1963 buildfiles lower in the directory tree would mis-interpret the user-defined relative 1964 paths.</p> 1965 <h3>Example</h3> 1966 <pre><property name="relative_path" value="./dirname"/> 2223 1967 2224 1968 <resolvepath propertyName="absolute_path" file="${relative_path}"/> 2225 1969 2226 1970 <echo>Resolved [absolute] path: ${absolute_path}</echo></pre> 2227 <h3>Attributes</h3> 2228 <table> 2229 <thead> 2230 <tr> 2231 <th>Name</th> 2232 <th>Type</th> 2233 <th>Description</th> 2234 <th>Default</th> 2235 <th>Required</th> 2236 </tr> 2237 <tr> 2238 <td>file</td> 2239 <td>String</td> 2240 <td>The file or directory path to resolve.</td> 2241 <td>n/a</td> 2242 <td>Yes</td> 2243 </tr> 2244 <tr> 2245 <td>dir</td> 2246 <td>File</td> 2247 <td>The base directory to use when resolving "file".</td> 2248 <td>project.basedir</td> 2249 <td>No</td> 2250 </tr> 2251 </thead> 2252 <tbody> 2253 <tr> 2254 <td>propertyName</td> 2255 <td>String</td> 2256 <td>The name of the property to set with resolved (absolute) 2257 path.</td> 2258 <td>n/a</td> 2259 <td>Yes</td> 2260 </tr> 2261 </tbody> 2262 </table> 2263 <h2> 2264 <a name="TaskdefTask"></a>TaskdefTask 2265 </h2> 2266 <p>With the TaskdefTask you can import a user task into your 2267 buildfile.</p> 2268 <h3>Example</h3> 2269 <pre><!-- Includes the Task named "ValidateHTMLTask" and makes it available by 1971 <h3>Attributes</h3> 1972 <table> 1973 <thead> 1974 <tr> 1975 <th>Name</th> 1976 <th>Type</th> 1977 <th>Description</th> 1978 <th>Default</th> 1979 <th>Required</th> 1980 </tr> 1981 <tr> 1982 <td>file</td> 1983 <td>String</td> 1984 <td>The file or directory path to resolve.</td> 1985 <td>n/a</td> 1986 <td>Yes</td> 1987 </tr> 1988 <tr> 1989 <td>dir</td> 1990 <td>File</td> 1991 <td>The base directory to use when resolving "file".</td> 1992 <td>project.basedir</td> 1993 <td>No</td> 1994 </tr> 1995 </thead> 1996 <tbody> 1997 <tr> 1998 <td>propertyName</td> 1999 <td>String</td> 2000 <td>The name of the property to set with resolved (absolute) path.</td> 2001 <td>n/a</td> 2002 <td>Yes</td> 2003 </tr> 2004 </tbody> 2005 </table> 2006 <h2> 2007 <a name="TaskdefTask"></a>TaskdefTask </h2> 2008 <p>With the TaskdefTask you can import a user task into your buildfile.</p> 2009 <h3>Example</h3> 2010 <pre><!-- Includes the Task named "ValidateHTMLTask" and makes it available by 2270 2011 <validatehtml> --> 2271 2012 <taskdef classname="user.tasks.ValidateHTMLTask" name="validatehtml" /> … … 2279 2020 <taskdef file="/path/to/mytasks.properties" /> 2280 2021 </pre> 2281 <p> 2282 <b>NB:</b> Taskdef now supports the PEAR-style naming convention to 2283 define and load tasks: 2284 </p> 2285 <pre> 2022 <p> 2023 <b>NB:</b> Taskdef now supports the PEAR-style naming convention to define and load 2024 tasks: </p> 2025 <pre> 2286 2026 <taskdef name="sampletask" classname="Dir_Subdir_SampleTask"/> 2287 2027 </pre> 2288 <p> 2289 will load class <i>Dir_Subdir_SampleTask</i> from file <i>Dir/Subdir/SampleTask.php</i>. 2290 </p> 2291 <h3>Attributes</h3> 2292 <table> 2293 <thead> 2294 <tr> 2295 <th>Name</th> 2296 <th>Type</th> 2297 <th>Description</th> 2298 <th>Default</th> 2299 <th>Required</th> 2300 </tr> 2301 </thead> 2302 <tbody> 2303 <tr> 2304 <td>classname</td> 2305 <td>String</td> 2306 <td>The path to the class that defines the TaskClass.</td> 2307 <td>n/a</td> 2308 <td>Yes, unless the <code>file</code> attribute has been 2309 specified.</td> 2310 </tr> 2311 <tr> 2312 <td>name</td> 2313 <td>String</td> 2314 <td>The name the task is available as after importing. If you 2315 specify "validate", for example, you can access the task 2316 imported here with <code><validate></code>.</td> 2317 <td>n/a</td> 2318 <td>Yes, unless the <code>file</code> attribute has been 2319 specified.</td> 2320 </tr> 2321 <tr> 2322 <td>file</td> 2323 <td>String</td> 2324 <td>Name of the file to load definitions from.</td> 2325 <td>n/a</td> 2326 <td>No</td> 2327 </tr> 2328 <tr> 2329 <td>classpath</td> 2330 <td>String</td> 2331 <td>The classpath to use when including classes. This is added 2332 to PHP's include_path.</td> 2333 <td>n/a</td> 2334 <td>No</td> 2335 </tr> 2336 <tr> 2337 <td>classpathref</td> 2338 <td>String</td> 2339 <td>Reference to classpath to use when including classes. This 2340 is added to PHP's include_path.</td> 2341 <td>n/a</td> 2342 <td>No</td> 2343 </tr> 2344 </tbody> 2345 </table> 2346 2347 <h3>Supported Nested Tags</h3> 2348 <ul> 2349 <li>classpath</li> 2350 </ul> 2351 <h2> 2352 <a name="TouchTask"></a>TouchTask 2353 </h2> 2354 <p> 2355 The TouchTask works like the Unix <em>touch</em> command: It sets the 2356 modtime of a file to a specific time. Default is the current time. 2357 </p> 2358 <h3>Example</h3> 2359 <pre><touch file="README.txt" millis="102134111" /> 2028 <p> will load class <i>Dir_Subdir_SampleTask</i> from file <i>Dir/Subdir/SampleTask.php</i>. </p> 2029 <h3>Attributes</h3> 2030 <table> 2031 <thead> 2032 <tr> 2033 <th>Name</th> 2034 <th>Type</th> 2035 <th>Description</th> 2036 <th>Default</th> 2037 <th>Required</th> 2038 </tr> 2039 </thead> 2040 <tbody> 2041 <tr> 2042 <td>classname</td> 2043 <td>String</td> 2044 <td>The path to the class that defines the TaskClass.</td> 2045 <td>n/a</td> 2046 <td>Yes, unless the <code>file</code> attribute has been specified.</td> 2047 </tr> 2048 <tr> 2049 <td>name</td> 2050 <td>String</td> 2051 <td>The name the task is available as after importing. If you specify 2052 "validate", for example, you can access the task imported here 2053 with <code><validate></code>.</td> 2054 <td>n/a</td> 2055 <td>Yes, unless the <code>file</code> attribute has been specified.</td> 2056 </tr> 2057 <tr> 2058 <td>file</td> 2059 <td>String</td> 2060 <td>Name of the file to load definitions from.</td> 2061 <td>n/a</td> 2062 <td>No</td> 2063 </tr> 2064 <tr> 2065 <td>classpath</td> 2066 <td>String</td> 2067 <td>The classpath to use when including classes. This is added to PHP's 2068 include_path.</td> 2069 <td>n/a</td> 2070 <td>No</td> 2071 </tr> 2072 <tr> 2073 <td>classpathref</td> 2074 <td>String</td> 2075 <td>Reference to classpath to use when including classes. This is added to PHP's 2076 include_path.</td> 2077 <td>n/a</td> 2078 <td>No</td> 2079 </tr> 2080 </tbody> 2081 </table> 2082 <h3>Supported Nested Tags</h3> 2083 <ul> 2084 <li>classpath</li> 2085 </ul> 2086 <h2> 2087 <a name="TouchTask"></a>TouchTask </h2> 2088 <p> The TouchTask works like the Unix <em>touch</em> command: It sets the modtime of a file 2089 to a specific time. Default is the current time. </p> 2090 <h3>Example</h3> 2091 <pre><touch file="README.txt" millis="102134111" /> 2360 2092 2361 2093 <touch file="COPYING.lib" datetime="10/10/1999 09:31 AM" /> 2362 2094 </pre> 2363 <h3>Attributes</h3> 2364 <table> 2365 <thead> 2366 <tr> 2367 <th>Name</th> 2368 <th>Type</th> 2369 <th>Description</th> 2370 <th>Default</th> 2371 <th>Required</th> 2372 </tr> 2373 </thead> 2374 <tbody> 2375 <tr> 2376 <td>file</td> 2377 <td>String</td> 2378 <td>The file which time is to be changed.</td> 2379 <td>n/a</td> 2380 <td>Yes, or nested <em><fileset></em> tag</td> 2381 </tr> 2382 <tr> 2383 <td>datetime</td> 2384 <td>DateTime</td> 2385 <td>The date and time the mtime of the file is to be set to. 2386 The format is "MM/DD/YYYY HH:MM AM or PM"</td> 2387 <td><em>now</em></td> 2388 <td>No</td> 2389 </tr> 2390 <tr> 2391 <td>millis</td> 2392 <td>Integer</td> 2393 <td>The number of milliseconds since Midnight Jan 1 1970 (Unix 2394 epoche).</td> 2395 <td><em>now</em></td> 2396 <td>No</td> 2397 </tr> 2398 </tbody> 2399 </table> 2400 <h3>Supported Nested Tags</h3> 2401 <ul> 2402 <li>fileset</li> 2403 </ul> 2404 2405 <h2> 2406 <a name="TstampTask"></a>TstampTask 2407 </h2> 2408 <p>Sets the DSTAMP, TSTAMP, and TODAY properties in the current 2409 project. By default, the DSTAMP property is in the format "%Y%m%d", 2410 TSTAMP is in the format "%H%M", and TODAY is in the format "%B %d %Y". 2411 Use the nested <format> element to specify a different format.</p> 2412 2413 <p>These properties can be used in the build-file, for instance, to 2414 create time-stamped filenames, or used to replace placeholder tags 2415 inside documents to indicate, for example, the release date. The best 2416 place for this task is probably in an initialization target.</p> 2417 2418 <h3>Examples</h3> 2419 <pre><tstamp/></pre> 2420 2421 <p>sets the standard DSTAMP, TSTAMP, and TODAY properties according 2422 to the default formats.</p> 2423 2424 <pre><tstamp> 2095 <h3>Attributes</h3> 2096 <table> 2097 <thead> 2098 <tr> 2099 <th>Name</th> 2100 <th>Type</th> 2101 <th>Description</th> 2102 <th>Default</th> 2103 <th>Required</th> 2104 </tr> 2105 </thead> 2106 <tbody> 2107 <tr> 2108 <td>file</td> 2109 <td>String</td> 2110 <td>The file which time is to be changed.</td> 2111 <td>n/a</td> 2112 <td>Yes, or nested <em><fileset></em> tag</td> 2113 </tr> 2114 <tr> 2115 <td>datetime</td> 2116 <td>DateTime</td> 2117 <td>The date and time the mtime of the file is to be set to. The format is 2118 "MM/DD/YYYY HH:MM AM or PM"</td> 2119 <td><em>now</em></td> 2120 <td>No</td> 2121 </tr> 2122 <tr> 2123 <td>millis</td> 2124 <td>Integer</td> 2125 <td>The number of milliseconds since Midnight Jan 1 1970 (Unix epoche).</td> 2126 <td><em>now</em></td> 2127 <td>No</td> 2128 </tr> 2129 </tbody> 2130 </table> 2131 <h3>Supported Nested Tags</h3> 2132 <ul> 2133 <li>fileset</li> 2134 </ul> 2135 <h2> 2136 <a name="TstampTask"></a>TstampTask </h2> 2137 <p>Sets the DSTAMP, TSTAMP, and TODAY properties in the current project. By default, the 2138 DSTAMP property is in the format "%Y%m%d", TSTAMP is in the format "%H%M", and TODAY is 2139 in the format "%B %d %Y". Use the nested <format> element to specify a different 2140 format.</p> 2141 <p>These properties can be used in the build-file, for instance, to create time-stamped 2142 filenames, or used to replace placeholder tags inside documents to indicate, for 2143 example, the release date. The best place for this task is probably in an initialization 2144 target.</p> 2145 <h3>Examples</h3> 2146 <pre><tstamp/></pre> 2147 <p>sets the standard DSTAMP, TSTAMP, and TODAY properties according to the default 2148 formats.</p> 2149 <pre><tstamp> 2425 2150 <format property="DATE" pattern="%c" locale="nl_NL"/> 2426 2151 </tstamp></pre> 2427 2428 <p>sets the standard properties as well as the property DATE with 2429 the date/time pattern "%c" using the Dutch locale.</p> 2430 2431 <pre><tstamp prefix="start"/></pre> 2432 2433 <p>sets three properties with the standard formats, prefixed with 2434 "start.": start.DSTAMP, start.TSTAMP, and start.TODAY.</p> 2435 2436 <h3>Attributes</h3> 2437 <table> 2438 <thead> 2439 <tr> 2440 <th>Name</th> 2441 <th>Type</th> 2442 <th>Description</th> 2443 <th>Default</th> 2444 <th>Required</th> 2445 </tr> 2446 </thead> 2447 <tbody> 2448 <tr> 2449 <td>prefix</td> 2450 <td>String</td> 2451 <td>Prefix used for all properties set.</td> 2452 <td>n/a</td> 2453 <td>No</td> 2454 </tr> 2455 </tbody> 2456 </table> 2457 2458 <h3>Supported Nested Tags</h3> 2459 <ul> 2460 <li>format 2461 <p>The Tstamp task supports a <format> nested element that 2462 allows a property to be set to the current date and time in a given 2463 format. The date/time patterns are as defined in the PHP strftime() 2464 function.</p> 2465 <h3>Attributes</h3> 2466 <table> 2467 <thead> 2468 <tr> 2469 <th>Name</th> 2470 <th>Type</th> 2471 <th>Description</th> 2472 <th>Default</th> 2473 <th>Required</th> 2474 </tr> 2475 </thead> 2476 <tbody> 2477 <tr> 2478 <td>property</td> 2479 <td>String</td> 2480 <td>The property to receive the date/time string in the given 2481 pattern.</td> 2482 <td>n/a</td> 2483 <td>Yes</td> 2484 </tr> 2485 <tr> 2486 <td>classname</td> 2487 <td>String</td> 2488 <td>The date/time pattern to be used. The values are as 2489 defined by the PHP strftime() function.</td> 2490 <td>n/a</td> 2491 <td>Yes</td> 2492 </tr> 2493 <tr> 2494 <td>locale</td> 2495 <td>String</td> 2496 <td>The locale used to create date/time string. For more 2497 information see the PHP setlocale() function.</td> 2498 <td>n/a</td> 2499 <td>No</td> 2500 </tr> 2501 </tbody> 2502 </table> 2503 </li> 2504 </ul> 2505 2506 <h2> 2507 <a name="TypedefTask"></a>TypedefTask 2508 </h2> 2509 <p>With the TypedefTask you can import a user type into your 2510 buildfile.</p> 2511 <h3>Example</h3> 2512 <pre><!-- Includes the Type named "CustomProject" and makes it available by 2152 <p>sets the standard properties as well as the property DATE with the date/time pattern "%c" 2153 using the Dutch locale.</p> 2154 <pre><tstamp prefix="start"/></pre> 2155 <p>sets three properties with the standard formats, prefixed with "start.": start.DSTAMP, 2156 start.TSTAMP, and start.TODAY.</p> 2157 <h3>Attributes</h3> 2158 <table> 2159 <thead> 2160 <tr> 2161 <th>Name</th> 2162 <th>Type</th> 2163 <th>Description</th> 2164 <th>Default</th> 2165 <th>Required</th> 2166 </tr> 2167 </thead> 2168 <tbody> 2169 <tr> 2170 <td>prefix</td> 2171 <td>String</td> 2172 <td>Prefix used for all properties set.</td> 2173 <td>n/a</td> 2174 <td>No</td> 2175 </tr> 2176 </tbody> 2177 </table> 2178 <h3>Supported Nested Tags</h3> 2179 <ul> 2180 <li>format <p>The Tstamp task supports a <format> nested element that allows a 2181 property to be set to the current date and time in a given format. The date/time 2182 patterns are as defined in the PHP strftime() function.</p> 2183 <h3>Attributes</h3> 2184 <table> 2185 <thead> 2186 <tr> 2187 <th>Name</th> 2188 <th>Type</th> 2189 <th>Description</th> 2190 <th>Default</th> 2191 <th>Required</th> 2192 </tr> 2193 </thead> 2194 <tbody> 2195 <tr> 2196 <td>property</td> 2197 <td>String</td> 2198 <td>The property to receive the date/time string in the given 2199 pattern.</td> 2200 <td>n/a</td> 2201 <td>Yes</td> 2202 </tr> 2203 <tr> 2204 <td>classname</td> 2205 <td>String</td> 2206 <td>The date/time pattern to be used. The values are as defined by the 2207 PHP strftime() function.</td> 2208 <td>n/a</td> 2209 <td>Yes</td> 2210 </tr> 2211 <tr> 2212 <td>locale</td> 2213 <td>String</td> 2214 <td>The locale used to create date/time string. For more information see 2215 the PHP setlocale() function.</td> 2216 <td>n/a</td> 2217 <td>No</td> 2218 </tr> 2219 </tbody> 2220 </table> 2221 </li> 2222 </ul> 2223 <h2> 2224 <a name="TypedefTask"></a>TypedefTask </h2> 2225 <p>With the TypedefTask you can import a user type into your buildfile.</p> 2226 <h3>Example</h3> 2227 <pre><!-- Includes the Type named "CustomProject" and makes it available by 2513 2228 <cproject> --> 2514 2229 <taskdef classname="user.types.CustomProject" name="cproject" /> 2515 2230 </pre> 2516 <h3>Attributes</h3> 2517 <table> 2518 <thead> 2519 <tr> 2520 <th>Name</th> 2521 <th>Type</th> 2522 <th>Description</th> 2523 <th>Default</th> 2524 <th>Required</th> 2525 </tr> 2526 </thead> 2527 <tbody> 2528 <tr> 2529 <td>classname</td> 2530 <td>String</td> 2531 <td>The path to the class that defines the type class.</td> 2532 <td>n/a</td> 2533 <td>Yes</td> 2534 </tr> 2535 <tr> 2536 <td>name</td> 2537 <td>String</td> 2538 <td>The name the type is available as after importing. If you 2539 specify "cproject", for example, you can access the type 2540 imported here with <code><cproject></code>.</td> 2541 <td>n/a</td> 2542 <td>Yes</td> 2543 </tr> 2544 <tr> 2545 <td>classpath</td> 2546 <td>String</td> 2547 <td>The classpath to use when including classes. This is added 2548 to PHP's include_path.</td> 2549 <td>n/a</td> 2550 <td>No</td> 2551 </tr> 2552 <tr> 2553 <td>classpathref</td> 2554 <td>String</td> 2555 <td>Reference to classpath to use when including classes. This 2556 is added to PHP's include_path.</td> 2557 <td>n/a</td> 2558 <td>No</td> 2559 </tr> 2560 </tbody> 2561 </table> 2562 2563 <h3>Supported Nested Tags</h3> 2564 <ul> 2565 <li>classpath</li> 2566 </ul> 2567 <h2> 2568 <a name="UpToDateTask"></a>UpToDateTask 2569 </h2> 2570 <p>UpToDateTask tests if a resource/file is set and sets a certain 2571 property to a certain value if it exists.</p> 2572 <pre title="Example of how to use AvailableTask"><uptodate property="propelBuild.notRequired" targetfile="${deploy}/propelClasses.tgz" > 2231 <h3>Attributes</h3> 2232 <table> 2233 <thead> 2234 <tr> 2235 <th>Name</th> 2236 <th>Type</th> 2237 <th>Description</th> 2238 <th>Default</th> 2239 <th>Required</th> 2240 </tr> 2241 </thead> 2242 <tbody> 2243 <tr> 2244 <td>classname</td> 2245 <td>String</td> 2246 <td>The path to the class that defines the type class.</td> 2247 <td>n/a</td> 2248 <td>Yes</td> 2249 </tr> 2250 <tr> 2251 <td>name</td> 2252 <td>String</td> 2253 <td>The name the type is available as after importing. If you specify 2254 "cproject", for example, you can access the type imported here 2255 with <code><cproject></code>.</td> 2256 <td>n/a</td> 2257 <td>Yes</td> 2258 </tr> 2259 <tr> 2260 <td>classpath</td> 2261 <td>String</td> 2262 <td>The classpath to use when including classes. This is added to PHP's 2263 include_path.</td> 2264 <td>n/a</td> 2265 <td>No</td> 2266 </tr> 2267 <tr> 2268 <td>classpathref</td> 2269 <td>String</td> 2270 <td>Reference to classpath to use when including classes. This is added to PHP's 2271 include_path.</td> 2272 <td>n/a</td> 2273 <td>No</td> 2274 </tr> 2275 </tbody> 2276 </table> 2277 <h3>Supported Nested Tags</h3> 2278 <ul> 2279 <li>classpath</li> 2280 </ul> 2281 <h2> 2282 <a name="UpToDateTask"></a>UpToDateTask </h2> 2283 <p>UpToDateTask tests if a resource/file is set and sets a certain property to a certain 2284 value if it exists.</p> 2285 <pre title="Example of how to use AvailableTask"><uptodate property="propelBuild.notRequired" targetfile="${deploy}/propelClasses.tgz" > 2573 2286 <fileset dir="${src}/propel"> 2574 2287 <include="**/*.php"/> 2575 2288 </fileset> 2576 2289 </uptodate></pre> 2577 <p> 2578 sets the property <em>propelBuild.notRequired</em> to true if the <em>${deploy}/propelClasses.tgz</em> 2579 file is more up-to-date than any of the PHP class files in the <em>${src}/propel</em> 2580 directory. 2581 </p> 2582 <p>Parameters</p> 2583 <table> 2584 <thead> 2585 <tr> 2586 <th>Name</th> 2587 <th>Type</th> 2588 <th>Description</th> 2589 <th>Default</th> 2590 <th>Required</th> 2591 </tr> 2592 </thead> 2593 <tbody> 2594 <tr> 2595 <td>property</td> 2596 <td>string</td> 2597 <td>Name of the property that is to be set.</td> 2598 <td>n/a</td> 2599 <td>Yes</td> 2600 </tr> 2601 <tr> 2602 <td>value</td> 2603 <td>String</td> 2604 <td>The value the propert is to be set to.</td> 2605 <td><em>"true"</em></td> 2606 <td>No</td> 2607 </tr> 2608 <tr> 2609 <td>srcfile</td> 2610 <td>String</td> 2611 <td>The file to check against target file(s).</td> 2612 <td>n/a</td> 2613 <td>Yes (or nested <em>fileset</em>)</td> 2614 </tr> 2615 <tr> 2616 <td>targetfile</td> 2617 <td>String</td> 2618 <td>The file for which we want to determine the status.</td> 2619 <td>n/a</td> 2620 <td>Yes (or nested<em> mapper</em>)</td> 2621 </tr> 2622 </tbody> 2623 </table> 2624 <h3>Supported Nested Tags</h3> 2625 <ul> 2626 <li>FileList</li> 2627 <li>FileSet</li> 2628 <li>Mapper</li> 2629 </ul> 2630 <p> </p> 2631 <h2> 2632 <a name="XsltTask"></a>XsltTask 2633 </h2> 2634 <p> 2635 With <em>XsltTask</em>, you can run a XSLT tranformation on an XML 2636 file. Actually, <em>XsltTask</em> extends <em>CopyTask</em>, so you 2637 can use all the elements allowed there. 2638 </p> 2639 <h3>Example</h3> 2640 <pre><!-- Transform docbook with an imaginary XSLT file --> 2290 <p> sets the property <em>propelBuild.notRequired</em> to true if the 2291 <em>${deploy}/propelClasses.tgz</em> file is more up-to-date than any of the PHP 2292 class files in the <em>${src}/propel</em> directory. </p> 2293 <p>Parameters</p> 2294 <table> 2295 <thead> 2296 <tr> 2297 <th>Name</th> 2298 <th>Type</th> 2299 <th>Description</th> 2300 <th>Default</th> 2301 <th>Required</th> 2302 </tr> 2303 </thead> 2304 <tbody> 2305 <tr> 2306 <td>property</td> 2307 <td>string</td> 2308 <td>Name of the property that is to be set.</td> 2309 <td>n/a</td> 2310 <td>Yes</td> 2311 </tr> 2312 <tr> 2313 <td>value</td> 2314 <td>String</td> 2315 <td>The value the propert is to be set to.</td> 2316 <td><em>"true"</em></td> 2317 <td>No</td> 2318 </tr> 2319 <tr> 2320 <td>srcfile</td> 2321 <td>String</td> 2322 <td>The file to check against target file(s).</td> 2323 <td>n/a</td> 2324 <td>Yes (or nested <em>fileset</em>)</td> 2325 </tr> 2326 <tr> 2327 <td>targetfile</td> 2328 <td>String</td> 2329 <td>The file for which we want to determine the status.</td> 2330 <td>n/a</td> 2331 <td>Yes (or nested<em> mapper</em>)</td> 2332 </tr> 2333 </tbody> 2334 </table> 2335 <h3>Supported Nested Tags</h3> 2336 <ul> 2337 <li>FileList</li> 2338 <li>FileSet</li> 2339 <li>Mapper</li> 2340 </ul> 2341 <p> </p> 2342 <h2> 2343 <a name="XsltTask"></a>XsltTask </h2> 2344 <p> With <em>XsltTask</em>, you can run a XSLT tranformation on an XML file. Actually, 2345 <em>XsltTask</em> extends <em>CopyTask</em>, so you can use all the elements allowed 2346 there. </p><p><em>XsltTask</em> is implemented by means of the <em>XsltFlter</em> and 2347 hence relies on PHP5 XSLT support via (libxslt) which must be available php5. </p> 2348 <h3>Example</h3> 2349 <pre><!-- Transform docbook with an imaginary XSLT file --> 2641 2350 <xslt todir="/srv/docs/phing" style="dbk2html.xslt" > 2642 2351 <fileset dir="."> … … 2645 2354 </xslt> 2646 2355 </pre> 2647 <h3>Attributes</h3> 2648 <table> 2649 <thead> 2650 <tr> 2651 <th>Name</th> 2652 <th>Type</th> 2653 <th>Description</th> 2654 <th>Default</th> 2655 <th>Required</th> 2656 </tr> 2657 </thead> 2658 <tbody> 2659 <tr> 2660 <td>style</td> 2661 <td>String</td> 2662 <td>The path where the Xslt file is located</td> 2663 <td>n/a</td> 2664 <td>Yes</td> 2665 </tr> 2666 <tr> 2667 <td>resolvedocumentexternals</td> 2668 <td>Boolean</td> 2669 <td>Whether to resolve entities in the XML document. (see <a 2670 href="http://www.php.net/manual/en/class.domdocument.php#domdocument.props.resolveexternals" 2671 target="_blank">this link</a> for details)</td> 2672 <td>false</td> 2673 <td>No</td> 2674 </tr> 2675 <tr> 2676 <td>resolvestylesheetexternals</td> 2677 <td>Boolean</td> 2678 <td>Whether to resolve entities in the stylesheet.</td> 2679 <td>false</td> 2680 <td>No</td> 2681 </tr> 2682 </tbody> 2683 </table> 2684 <p> 2685 <em>Note:</em> You can also use all the attributes available for <a 2686 href="#CopyTask">CopyTask</a>. 2687 </p> 2688 <h3>Suppported Nested Elements</h3> 2689 <p> 2690 <em>Note:</em> You can use all the elements also available for <a 2691 href="#CopyTask">CopyTask</a>. 2692 </p> 2693 2694 <p> 2695 Additionally, you can use <em><param></em> tags with a <em>name</em> 2696 and a <em>expression</em> (or <em>value</em> alias) attribute. These 2697 parameters are then available from within the xsl style sheet. 2698 </p> 2699 2700 </body> 2356 <h3>Attributes</h3> 2357 <table> 2358 <thead> 2359 <tr> 2360 <th>Name</th> 2361 <th>Type</th> 2362 <th>Description</th> 2363 <th>Default</th> 2364 <th>Required</th> 2365 </tr> 2366 </thead> 2367 <tbody> 2368 <tr> 2369 <td>style</td> 2370 <td>String</td> 2371 <td>The path where the Xslt file is located</td> 2372 <td>n/a</td> 2373 <td>Yes</td> 2374 </tr> 2375 <tr> 2376 <td>resolvedocumentexternals</td> 2377 <td>Boolean</td> 2378 <td>Whether to resolve entities in the XML document. (see <a 2379 href="http://www.php.net/manual/en/class.domdocument.php#domdocument.props.resolveexternals" 2380 target="_blank">this link</a> for details)</td> 2381 <td>false</td> 2382 <td>No</td> 2383 </tr> 2384 <tr> 2385 <td>resolvestylesheetexternals</td> 2386 <td>Boolean</td> 2387 <td>Whether to resolve entities in the stylesheet.</td> 2388 <td>false</td> 2389 <td>No</td> 2390 </tr> 2391 </tbody> 2392 </table> 2393 <p><em>Note:</em> You can also use all the attributes available for <a href="#CopyTask" 2394 >CopyTask</a>. </p> 2395 <h3>Suppported Nested Elements</h3> 2396 <p> 2397 <em>Note:</em> You can use all the elements also available for <a href="#CopyTask" 2398 >CopyTask</a>. </p> 2399 <p>Additionally, you can use <em><param></em> tags with a <em>name</em> and a 2400 <em>expression</em> (or <em>value</em> alias) attribute. These parameters are then 2401 available from within the xsl style sheet. </p> 2402 </body> 2701 2403 </html> -
docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html
rc920479 r7508253 16 16 </head> 17 17 <body> 18 <h1> 19 <a name="AppendixC-OptionalTasks"></a>Appendix C: Optional Tasks 20 </h1> 21 <p>This appendix contains a reference of all optional tasks, i.e. 22 tasks that are not directly needed for building projects, but can 23 assist in various aspects of development and deployment.</p> 24 <p> 25 This reference lists the tasks alphabetically by the name of the 26 classes that implement the tasks. So if you are searching for the 27 reference to the 28 <code><phplint></code> 29 tag, for example, you will want to look at the reference of 30 PhpLintTask. 31 </p> 32 33 <h2> 34 <a name="CoverageMergerTask"></a>CoverageMergerTask 35 </h2> 36 <p>The CoverageMergerTask merges code coverage information from 37 external sources with an existing code coverage database.</p> 38 <p>The format of the code coverage files is expected to be 39 identical to:</p> 40 <pre> 18 <h1> 19 <a name="AppendixC-OptionalTasks"></a>Appendix C: Optional Tasks </h1> 20 <p>This appendix contains a reference of all optional tasks, i.e. tasks that are not 21 directly needed for building projects, but can assist in various aspects of development 22 and deployment.</p> 23 <p> This reference lists the tasks alphabetically by the name of the classes that implement 24 the tasks. So if you are searching for the reference to the <code><phplint></code> 25 tag, for example, you will want to look at the reference of PhpLintTask. </p> 26 <h2> 27 <a name="CoverageMergerTask"></a>CoverageMergerTask </h2> 28 <p>The CoverageMergerTask merges code coverage information from external sources with an 29 existing code coverage database.</p> 30 <p>The format of the code coverage files is expected to be identical to:</p> 31 <pre> 41 32 file_put_contents('/www/live/testcases/coverage.data', serialize(xdebug_get_code_coverage)); 42 33 </pre> 43 <h3>Supported Nested Tags</h3>44 <ul>45 <li>fileset</li>46 </ul>47 <h3>Example</h3>48 <pre>34 <h3>Supported Nested Tags</h3> 35 <ul> 36 <li>fileset</li> 37 </ul> 38 <h3>Example</h3> 39 <pre> 49 40 <coverage-merger> 50 41 <fileset dir="/www/live/testcases"> … … 53 44 </coverage-merger> 54 45 </pre> 55 <h2> 56 <a name="CoverageReportTask"></a>CoverageReportTask 57 </h2> 58 <p>The CoverageReportTask formats a coverage database into a framed 59 HTML report using XSLT.</p> 60 <h3>Attributes</h3> 61 <table> 62 <thead> 63 <tr> 64 <th>Name</th> 65 <th>Type</th> 66 <th>Description</th> 67 <th>Default</th> 68 <th>Required</th> 69 </tr> 70 </thead> 71 <tbody> 72 <tr> 73 <td>outfile</td> 74 <td>String</td> 75 <td>The location for the intermediate XML file.</td> 76 <td>coverage.db</td> 77 <td>Yes</td> 78 </tr> 79 </tbody> 80 </table> 81 <h3>Supported Nested Tags</h3> 82 <ul> 83 <li>report 84 <h3>Attributes</h3> 85 <table> 86 <thead> 87 <tr> 88 <th>Name</th> 89 <th>Type</th> 90 <th>Description</th> 91 <th>Default</th> 92 <th>Required</th> 93 </tr> 94 </thead> 95 <tbody> 96 <tr> 97 <td>styledir</td> 98 <td>String</td> 99 <td>The directory where the stylesheets are located.</td> 100 <td>n/a</td> 101 <td>Yes</td> 102 </tr> 103 <tr> 104 <td>todir</td> 105 <td>String</td> 106 <td>The directory where the files resulting from the 107 transformation should be written to.</td> 108 <td></td> 109 <td>Yes</td> 110 </tr> 111 <tr> 112 <td>title</td> 113 <td>String</td> 114 <td>Title of the project (used in the generated document(s))</td> 115 <td></td> 116 <td>No</td> 117 </tr> 118 <tr> 119 <td>usesorttable</td> 120 <td>boolean</td> 121 <td>Whether to use the sorttable JavaScript library (see <a 122 href="http://www.kryogenix.org/code/browser/sorttable/">http://www.kryogenix.org/code/browser/sorttable/</a>)</td> 123 <td>false</td> 124 <td>No</td> 125 </tr> 126 </tbody> 127 </table></li> 128 </ul> 129 <h3>Example</h3> 130 <pre> 46 <h2> 47 <a name="CoverageReportTask"></a>CoverageReportTask </h2> 48 <p>The CoverageReportTask formats a coverage database into a framed HTML report using 49 XSLT.</p> 50 <h3>Attributes</h3> 51 <table> 52 <thead> 53 <tr> 54 <th>Name</th> 55 <th>Type</th> 56 <th>Description</th> 57 <th>Default</th> 58 <th>Required</th> 59 </tr> 60 </thead> 61 <tbody> 62 <tr> 63 <td>outfile</td> 64 <td>String</td> 65 <td>The location for the intermediate XML file.</td> 66 <td>coverage.db</td> 67 <td>Yes</td> 68 </tr> 69 </tbody> 70 </table> 71 <h3>Supported Nested Tags</h3> 72 <ul> 73 <li>report <h3>Attributes</h3> 74 <table> 75 <thead> 76 <tr> 77 <th>Name</th> 78 <th>Type</th> 79 <th>Description</th> 80 <th>Default</th> 81 <th>Required</th> 82 </tr> 83 </thead> 84 <tbody> 85 <tr> 86 <td>styledir</td> 87 <td>String</td> 88 <td>The directory where the stylesheets are located.</td> 89 <td>n/a</td> 90 <td>Yes</td> 91 </tr> 92 <tr> 93 <td>todir</td> 94 <td>String</td> 95 <td>The directory where the files resulting from the transformation 96 should be written to.</td> 97 <td></td> 98 <td>Yes</td> 99 </tr> 100 <tr> 101 <td>title</td> 102 <td>String</td> 103 <td>Title of the project (used in the generated document(s))</td> 104 <td></td> 105 <td>No</td> 106 </tr> 107 <tr> 108 <td>usesorttable</td> 109 <td>boolean</td> 110 <td>Whether to use the sorttable JavaScript library (see <a 111 href="http://www.kryogenix.org/code/browser/sorttable/" 112 >http://www.kryogenix.org/code/browser/sorttable/</a>)</td> 113 <td>false</td> 114 <td>No</td> 115 </tr> 116 </tbody> 117 </table></li> 118 </ul> 119 <h3>Example</h3> 120 <pre> 131 121 <coverage-report outfile="reports/coverage.xml"> 132 122 <report todir="reports/coverage" styledir="/home/phing/etc"/> 133 123 </coverage-report> 134 124 </pre> 135 <h2> 136 <a name="CoverageSetupTask"></a>CoverageSetupTask 137 </h2> 138 <p>The CoverageSetupTask prepares a database which can be used to 139 gather code coverage information for unit tests.</p> 140 <h3>Attributes</h3> 141 <table> 142 <thead> 143 <tr> 144 <th>Name</th> 145 <th>Type</th> 146 <th>Description</th> 147 <th>Default</th> 148 <th>Required</th> 149 </tr> 150 </thead> 151 <tbody> 152 <tr> 153 <td>database</td> 154 <td>String</td> 155 <td>The location for the coverage database.</td> 156 <td>coverage.db</td> 157 <td>Yes</td> 158 </tr> 159 </tbody> 160 </table> 161 <h3>Supported Nested Tags</h3> 162 <ul> 163 <li>classpath</li> 164 <li>fileset</li> 165 <li>filelist</li> 166 </ul> 167 <h3>Example</h3> 168 <pre> 125 <h2> 126 <a name="CoverageSetupTask"></a>CoverageSetupTask </h2> 127 <p>The CoverageSetupTask prepares a database which can be used to gather code coverage 128 information for unit tests.</p> 129 <h3>Attributes</h3> 130 <table> 131 <thead> 132 <tr> 133 <th>Name</th> 134 <th>Type</th> 135 <th>Description</th> 136 <th>Default</th> 137 <th>Required</th> 138 </tr> 139 </thead> 140 <tbody> 141 <tr> 142 <td>database</td> 143 <td>String</td> 144 <td>The location for the coverage database.</td> 145 <td>coverage.db</td> 146 <td>Yes</td> 147 </tr> 148 </tbody> 149 </table> 150 <h3>Supported Nested Tags</h3> 151 <ul> 152 <li>classpath</li> 153 <li>fileset</li> 154 <li>filelist</li> 155 </ul> 156 <h3>Example</h3> 157 <pre> 169 158 <coverage-setup database="./reports/coverage.db"> 170 159 <fileset dir="classes"> … … 180 169 </phpunit> 181 170 </pre> 182 183 <h2> 184 <a name="CoverageThresholdTask"></a>CoverageThresholdTask 185 </h2> 186 <p>This task validates the code coverage database and will stop the 187 build cycle if any class or method or entire project's coverage is 188 lower than the specified threshold.</p> 189 <h3>Attributes</h3> 190 <table> 191 <thead> 192 <tr> 193 <th>Name</th> 194 <th>Type</th> 195 <th>Description</th> 196 <th>Default</th> 197 <th>Required</th> 198 </tr> 199 </thead> 200 <tbody> 201 <tr> 202 <td>database</td> 203 <td>String</td> 204 <td>The location of the coverage database. (This is optional if 205 <em>CoverageSetupTask</em> has run before)</td> 206 <td>n/a</td> 207 <td>No</td> 208 </tr> 209 <tr> 210 <td>perProject</td> 211 <td>Integer</td> 212 <td>The minimum code coverage for the entire project.</td> 213 <td>25</td> 214 <td>No</td> 215 </tr> 216 <tr> 217 <td>perClass</td> 218 <td>Integer</td> 219 <td>The minimum code coverage for any class.</td> 220 <td>25</td> 221 <td>No</td> 222 </tr> 223 <tr> 224 <td>perMethod</td> 225 <td>Integer</td> 226 <td>The minimum code coverage for any method.</td> 227 <td>25</td> 228 <td>No</td> 229 </tr> 230 <tr> 231 <td>verbose</td> 232 <td>Boolean</td> 233 <td>Whether to enable detailed logging or not.</td> 234 <td>false</td> 235 <td>No</td> 236 </tr> 237 </tbody> 238 </table> 239 <h3>Supported Nested Tags</h3> 240 <ul> 241 <li>classpath</li> 242 <li>excludes</li> 243 </ul> 244 <h3>Example</h3> 245 <pre> 171 <h2> 172 <a name="CoverageThresholdTask"></a>CoverageThresholdTask </h2> 173 <p>This task validates the code coverage database and will stop the build cycle if any class 174 or method or entire project's coverage is lower than the specified threshold.</p> 175 <h3>Attributes</h3> 176 <table> 177 <thead> 178 <tr> 179 <th>Name</th> 180 <th>Type</th> 181 <th>Description</th> 182 <th>Default</th> 183 <th>Required</th> 184 </tr> 185 </thead> 186 <tbody> 187 <tr> 188 <td>database</td> 189 <td>String</td> 190 <td>The location of the coverage database. (This is optional if 191 <em>CoverageSetupTask</em> has run before)</td> 192 <td>n/a</td> 193 <td>No</td> 194 </tr> 195 <tr> 196 <td>perProject</td> 197 <td>Integer</td> 198 <td>The minimum code coverage for the entire project.</td> 199 <td>25</td> 200 <td>No</td> 201 </tr> 202 <tr> 203 <td>perClass</td> 204 <td>Integer</td> 205 <td>The minimum code coverage for any class.</td> 206 <td>25</td> 207 <td>No</td> 208 </tr> 209 <tr> 210 <td>perMethod</td> 211 <td>Integer</td> 212 <td>The minimum code coverage for any method.</td> 213 <td>25</td> 214 <td>No</td> 215 </tr> 216 <tr> 217 <td>verbose</td> 218 <td>Boolean</td> 219 <td>Whether to enable detailed logging or not.</td> 220 <td>false</td> 221 <td>No</td> 222 </tr> 223 </tbody> 224 </table> 225 <h3>Supported Nested Tags</h3> 226 <ul> 227 <li>classpath</li> 228 <li>excludes</li> 229 </ul> 230 <h3>Example</h3> 231 <pre> 246 232 <coverage-threshold database="./reports/coverage.db"/> 247 233 </pre> 248 <p>Validates an optional code coverage database against the default 249 thresholds.</p> 250 <pre> 234 <p>Validates an optional code coverage database against the default thresholds.</p> 235 <pre> 251 236 <coverage-threshold 252 237 perProject="50" … … 254 239 perMethod="70"/> 255 240 </pre> 256 <p>Validates the code coverage database (from CoverageSetupTask) 257 against the specified thresholds.</p> 258 259 <pre> 241 <p>Validates the code coverage database (from CoverageSetupTask) against the specified 242 thresholds.</p> 243 <pre> 260 244 <coverage-threshold 261 245 perProject="50" … … 268 252 </excludes> 269 253 </pre> 270 <p>Validates the code coverage database (from CoverageSetupTask) 271 against the specified thresholds and excludes the given file, class and method from 272 threshold validation. The filename is relative to the project basedir. 273 A Method can be named either "Model_System::execute()" or "Model_System::execute". 274 The method name is considered only for the given class "Model_System".</p> 275 276 <h2> 277 <a name="DbDeployTask"></a>DbDeployTask 278 </h2> 279 <p> 280 The <em>DbDeployTask</em> creates .sql files for making revisions to a 281 database, based on dbdeploy conventions centering around a changelog 282 table in the database. See <a 283 href="http://dbdeploy.com/documentation/getting-started/rules-for-using-dbdeploy/">rules 284 for using dbdeploy</a> for more information. You will need a changelog 285 table like so: 286 </p> 287 <pre>CREATE TABLE changelog ( 254 <p>Validates the code coverage database (from CoverageSetupTask) against the specified 255 thresholds and excludes the given file, class and method from threshold validation. The 256 filename is relative to the project basedir. A Method can be named either 257 "Model_System::execute()" or "Model_System::execute". The method name is considered only 258 for the given class "Model_System".</p> 259 <h2> 260 <a name="DbDeployTask"></a>DbDeployTask </h2> 261 <p> The <em>DbDeployTask</em> creates .sql files for making revisions to a database, based 262 on dbdeploy conventions centering around a changelog table in the database. See <a 263 href="http://dbdeploy.com/documentation/getting-started/rules-for-using-dbdeploy/" 264 >rules for using dbdeploy</a> for more information. You will need a changelog table 265 like so: </p> 266 <pre>CREATE TABLE changelog ( 288 267 change_number BIGINT NOT NULL, 289 268 delta_set VARCHAR(10) NOT NULL, … … 293 272 description VARCHAR(500) NOT NULL 294 273 )</pre> 295 <h3>Example</h3>296 <pre>274 <h3>Example</h3> 275 <pre> 297 276 <dbdeploy 298 277 url="sqlite:${project.basedir}/data/db.sqlite" … … 302 281 /> 303 282 </pre> 304 <p>The above example uses a sqlite database and delta scripts 305 located in dbdeploy/deltas in the project base dir.</p> 306 <h3>Attributes</h3> 307 <table> 308 <thead> 309 <tr> 310 <th>Name</th> 311 <th>Type</th> 312 <th>Description</th> 313 <th>Default</th> 314 <th>Required</th> 315 </tr> 316 </thead> 317 <tbody> 318 <tr> 319 <td>url</td> 320 <td>String</td> 321 <td>PDO connection url</td> 322 <td>n/a</td> 323 <td>Yes</td> 324 </tr> 325 <tr> 326 <td>userid</td> 327 <td>String</td> 328 <td>DB userid to use for accessing the changelog table</td> 329 <td>none</td> 330 <td>As required by db</td> 331 </tr> 332 <tr> 333 <td>password</td> 334 <td>String</td> 335 <td>DB password to use for accessing the changelog table</td> 336 <td>none</td> 337 <td>As required by db</td> 338 </tr> 339 <tr> 340 <td>dir</td> 341 <td>String</td> 342 <td>Directory containing dbdeploy delta scripts</td> 343 <td>none</td> 344 <td>Yes</td> 345 </tr> 346 <tr> 347 <td>outputfile</td> 348 <td>String</td> 349 <td>Filename in which deployment SQL will be generated</td> 350 <td>dbdeploy_deploy.sql</td> 351 <td>No</td> 352 </tr> 353 <tr> 354 <td>undooutputfile</td> 355 <td>String</td> 356 <td>Filename in which undo SQL will be generated</td> 357 <td>dbdeploy_undo.sql</td> 358 <td>No</td> 359 </tr> 360 <tr> 361 <td>deltaset</td> 362 <td>String</td> 363 <td>deltaset to check within db</td> 364 <td>Main</td> 365 <td>No</td> 366 </tr> 367 <tr> 368 <td>lastchangetoapply</td> 369 <td>Integer</td> 370 <td>Highest-numbered delta script to apply to db</td> 371 <td>999</td> 372 <td>No</td> 373 </tr> 374 </tbody> 375 </table> 376 <h2> 377 <a name="DocBloxTask"></a>DocBloxTask 378 </h2> 379 <p> 380 This task runs <a href="http://www.docblox-project.org/" 381 target="_blank">DocBlox</a>, a PHP 5.3-compatible API documentation 382 tool. 383 </p> 384 <h3>Attributes</h3> 385 <table> 386 <thead> 387 <tr> 388 <th>Name</th> 389 <th>Type</th> 390 <th>Description</th> 391 <th>Default</th> 392 <th>Required</th> 393 </tr> 394 </thead> 395 <tbody> 396 <tr> 397 <td>title</td> 398 <td>String</td> 399 <td>Title of the project.</td> 400 <td>n/a</td> 401 <td>No</td> 402 </tr> 403 <tr> 404 <td>destdir</td> 405 <td>String</td> 406 <td>Destination directory for output files.</td> 407 <td>n/a</td> 408 <td>Yes</td> 409 </tr> 410 <tr> 411 <td>quiet</td> 412 <td>Boolean</td> 413 <td>Suppress DocBlox chatter.</td> 414 <td>true</td> 415 <td>No</td> 416 </tr> 417 </tbody> 418 </table> 419 <h3>Supported Nested Tags</h3> 420 <ul> 421 <li>fileset - Files that should be included for parsing</li> 422 </ul> 423 <h3>Examples</h3> 424 <pre> 283 <p>The above example uses a sqlite database and delta scripts located in dbdeploy/deltas in 284 the project base dir.</p> 285 <h3>Attributes</h3> 286 <table> 287 <thead> 288 <tr> 289 <th>Name</th> 290 <th>Type</th> 291 <th>Description</th> 292 <th>Default</th> 293 <th>Required</th> 294 </tr> 295 </thead> 296 <tbody> 297 <tr> 298 <td>url</td> 299 <td>String</td> 300 <td>PDO connection url</td> 301 <td>n/a</td> 302 <td>Yes</td> 303 </tr> 304 <tr> 305 <td>userid</td> 306 <td>String</td> 307 <td>DB userid to use for accessing the changelog table</td> 308 <td>none</td> 309 <td>As required by db</td> 310 </tr> 311 <tr> 312 <td>password</td> 313 <td>String</td> 314 <td>DB password to use for accessing the changelog table</td> 315 <td>none</td> 316 <td>As required by db</td> 317 </tr> 318 <tr> 319 <td>dir</td> 320 <td>String</td> 321 <td>Directory containing dbdeploy delta scripts</td> 322 <td>none</td> 323 <td>Yes</td> 324 </tr> 325 <tr> 326 <td>outputfile</td> 327 <td>String</td> 328 <td>Filename in which deployment SQL will be generated</td> 329 <td>dbdeploy_deploy.sql</td> 330 <td>No</td> 331 </tr> 332 <tr> 333 <td>undooutputfile</td> 334 <td>String</td> 335 <td>Filename in which undo SQL will be generated</td> 336 <td>dbdeploy_undo.sql</td> 337 <td>No</td> 338 </tr> 339 <tr> 340 <td>deltaset</td> 341 <td>String</td> 342 <td>deltaset to check within db</td> 343 <td>Main</td> 344 <td>No</td> 345 </tr> 346 <tr> 347 <td>lastchangetoapply</td> 348 <td>Integer</td> 349 <td>Highest-numbered delta script to apply to db</td> 350 <td>999</td> 351 <td>No</td> 352 </tr> 353 </tbody> 354 </table> 355 <h2> 356 <a name="DocBloxTask"></a>DocBloxTask </h2> 357 <p> This task runs <a href="http://www.docblox-project.org/" target="_blank">DocBlox</a>, a 358 PHP 5.3-compatible API documentation tool. </p> 359 <h3>Attributes</h3> 360 <table> 361 <thead> 362 <tr> 363 <th>Name</th> 364 <th>Type</th> 365 <th>Description</th> 366 <th>Default</th> 367 <th>Required</th> 368 </tr> 369 </thead> 370 <tbody> 371 <tr> 372 <td>title</td> 373 <td>String</td> 374 <td>Title of the project.</td> 375 <td>n/a</td> 376 <td>No</td> 377 </tr> 378 <tr> 379 <td>destdir</td> 380 <td>String</td> 381 <td>Destination directory for output files.</td> 382 <td>n/a</td> 383 <td>Yes</td> 384 </tr> 385 <tr> 386 <td>quiet</td> 387 <td>Boolean</td> 388 <td>Suppress DocBlox chatter.</td> 389 <td>true</td> 390 <td>No</td> 391 </tr> 392 </tbody> 393 </table> 394 <h3>Supported Nested Tags</h3> 395 <ul> 396 <li>fileset - Files that should be included for parsing</li> 397 </ul> 398 <h3>Examples</h3> 399 <pre> 425 400 <docblox title="API Documentation" 426 401 destdir="apidocs"> … … 430 405 </docblox> 431 406 </pre> 432 <h2> 433 <a name="ExportPropertiesTask"></a>ExportPropertiesTask 434 </h2> 435 <p>Exports all defined properties to a specified file.</p> 436 <h3>Example</h3> 437 <pre> 407 <h2> 408 <a name="ExportPropertiesTask"></a>ExportPropertiesTask </h2> 409 <p>Exports all defined properties to a specified file.</p> 410 <h3>Example</h3> 411 <pre> 438 412 <exportproperties targetfile="output.props" /> 439 413 </pre> 440 <h3>Attributes</h3> 441 <table> 442 <thead> 443 <tr> 444 <th>Name</th> 445 <th>Type</th> 446 <th>Description</th> 447 <th>Default</th> 448 <th>Required</th> 449 </tr> 450 </thead> 451 <tbody> 452 <tr> 453 <td>targetfile</td> 454 <td>String</td> 455 <td>Target file for saved properties</td> 456 <td>n/a</td> 457 <td>Yes</td> 458 </tr> 459 <tr> 460 <td>disallowedPropertyPrefixes</td> 461 <td>String</td> 462 <td>Exclude properties starting with these prefixes (separated 463 by <em>,</em></td> 464 <td><em>'host.'</em>, <em>'phing.'</em>, <em>'os.'</em>, <em>'php.'</em>, 465 <em>'line.'</em>, <em>'env.'</em>, <em>'user.'</em></td> 466 <td>No</td> 467 </tr> 468 </tbody> 469 </table> 470 471 472 <h2> 473 <a name="FileHashTask"></a>FileHashTask 474 </h2> 475 <p>Calculates either MD5 or SHA1 hash value of a file and stores 476 the value as a hex string in a property.</p> 477 <h3>Example</h3> 478 <pre> 414 <h3>Attributes</h3> 415 <table> 416 <thead> 417 <tr> 418 <th>Name</th> 419 <th>Type</th> 420 <th>Description</th> 421 <th>Default</th> 422 <th>Required</th> 423 </tr> 424 </thead> 425 <tbody> 426 <tr> 427 <td>targetfile</td> 428 <td>String</td> 429 <td>Target file for saved properties</td> 430 <td>n/a</td> 431 <td>Yes</td> 432 </tr> 433 <tr> 434 <td>disallowedPropertyPrefixes</td> 435 <td>String</td> 436 <td>Exclude properties starting with these prefixes (separated by 437 <em>,</em></td> 438 <td><em>'host.'</em>, <em>'phing.'</em>, <em>'os.'</em>, <em>'php.'</em>, 439 <em>'line.'</em>, <em>'env.'</em>, <em>'user.'</em></td> 440 <td>No</td> 441 </tr> 442 </tbody> 443 </table> 444 <h2> 445 <a name="FileHashTask"></a>FileHashTask </h2> 446 <p>Calculates either MD5 or SHA1 hash value of a file and stores the value as a hex string 447 in a property.</p> 448 <h3>Example</h3> 449 <pre> 479 450 <filehash file="${builddir}/${tarball}.tar.${compression}" /> 480 451 <echo "Hashvalue is; ${filehashvalue}" /> 481 452 </pre> 482 <h3>Attributes</h3> 483 <table> 484 <thead> 485 <tr> 486 <th>Name</th> 487 <th>Type</th> 488 <th>Description</th> 489 <th>Default</th> 490 <th>Required</th> 491 </tr> 492 </thead> 493 <tbody> 494 <tr> 495 <td>file</td> 496 <td>String</td> 497 <td>Filename</td> 498 <td>n/a</td> 499 <td>Yes</td> 500 </tr> 501 <tr> 502 <td>hashtype</td> 503 <td>Integer</td> 504 <td>Specifies what hash algorithm to use. 0=MD5, 1=SHA1</td> 505 <td>0</td> 506 <td>No</td> 507 </tr> 508 <tr> 509 <td>propertyname</td> 510 <td>String</td> 511 <td>Name of property where the hash value is stored</td> 512 <td>filehashvalue</td> 513 <td>No</td> 514 </tr> 515 </tbody> 516 </table> 517 518 <h2> 519 <a name="FileSizeTask"></a>FileSizeTask 520 </h2> 521 <p>Stores the size of a specified file in a property. The file size 522 is returned in bytes.</p> 523 <h3>Example</h3> 524 <pre> 453 <h3>Attributes</h3> 454 <table> 455 <thead> 456 <tr> 457 <th>Name</th> 458 <th>Type</th> 459 <th>Description</th> 460 <th>Default</th> 461 <th>Required</th> 462 </tr> 463 </thead> 464 <tbody> 465 <tr> 466 <td>file</td> 467 <td>String</td> 468 <td>Filename</td> 469 <td>n/a</td> 470 <td>Yes</td> 471 </tr> 472 <tr> 473 <td>hashtype</td> 474 <td>Integer</td> 475 <td>Specifies what hash algorithm to use. 0=MD5, 1=SHA1</td> 476 <td>0</td> 477 <td>No</td> 478 </tr> 479 <tr> 480 <td>propertyname</td> 481 <td>String</td> 482 <td>Name of property where the hash value is stored</td> 483 <td>filehashvalue</td> 484 <td>No</td> 485 </tr> 486 </tbody> 487 </table> 488 <h2> 489 <a name="FileSizeTask"></a>FileSizeTask </h2> 490 <p>Stores the size of a specified file in a property. The file size is returned in 491 bytes.</p> 492 <h3>Example</h3> 493 <pre> 525 494 <filesize file="${builddir}/${tarball}.tar.${compression}" /> 526 495 <php expression="floor(${filesize}/1024)" returnProperty="ksize" /> … … 529 498 <echo msg="Filesize is: ${msize} MB"/> 530 499 </pre> 531 <h3>Attributes</h3> 532 <table> 533 <thead> 534 <tr> 535 <th>Name</th> 536 <th>Type</th> 537 <th>Description</th> 538 <th>Default</th> 539 <th>Required</th> 540 </tr> 541 </thead> 542 <tbody> 543 <tr> 544 <td>file</td> 545 <td>String</td> 546 <td>Filename</td> 547 <td>n/a</td> 548 <td>Yes</td> 549 </tr> 550 <tr> 551 <td>propertyname</td> 552 <td>String</td> 553 <td>Name of property where the file size is stored</td> 554 <td>filesize</td> 555 <td>No</td> 556 </tr> 557 </tbody> 558 </table> 559 560 561 562 <h2> 563 <a name="FtpDeployTask"></a>FtpDeployTask 564 </h2> 565 <p>Deploys a set of files to a remote FTP server.</p> 566 <h3>Example</h3> 567 <pre><ftpdeploy 500 <h3>Attributes</h3> 501 <table> 502 <thead> 503 <tr> 504 <th>Name</th> 505 <th>Type</th> 506 <th>Description</th> 507 <th>Default</th> 508 <th>Required</th> 509 </tr> 510 </thead> 511 <tbody> 512 <tr> 513 <td>file</td> 514 <td>String</td> 515 <td>Filename</td> 516 <td>n/a</td> 517 <td>Yes</td> 518 </tr> 519 <tr> 520 <td>propertyname</td> 521 <td>String</td> 522 <td>Name of property where the file size is stored</td> 523 <td>filesize</td> 524 <td>No</td> 525 </tr> 526 </tbody> 527 </table> 528 <h2> 529 <a name="FtpDeployTask"></a>FtpDeployTask </h2> 530 <p>Deploys a set of files to a remote FTP server.</p> 531 <h3>Example</h3> 532 <pre><ftpdeploy 568 533 host="${ftp.host}" 569 534 port="${ftp.port}" … … 583 548 </ftpdeploy> 584 549 </pre> 585 <h3>Attributes</h3> 586 <table> 587 <thead> 588 <tr> 589 <th>Name</th> 590 <th>Type</th> 591 <th>Description</th> 592 <th>Default</th> 593 <th>Required</th> 594 </tr> 595 </thead> 596 <tbody> 597 <tr> 598 <td>host</td> 599 <td>String</td> 600 <td>The hostname of the remote server.</td> 601 <td>none</td> 602 <td>Yes</td> 603 </tr> 604 <tr> 605 <td>port</td> 606 <td>Boolean</td> 607 <td>The port of the remote server.</td> 608 <td>21</td> 609 <td>No</td> 610 </tr> 611 <tr> 612 <td>username</td> 613 <td>String</td> 614 <td>The username to use when logging in to the remote server.</td> 615 <td>none</td> 616 <td>Yes</td> 617 </tr> 618 <tr> 619 <td>password</td> 620 <td>String</td> 621 <td>The password to use when logging in to the remote server</td> 622 <td>none</td> 623 <td>Yes</td> 624 </tr> 625 <tr> 626 <td>dir</td> 627 <td>String</td> 628 <td>Directory on the remote server.</td> 629 <td>none</td> 630 <td>No</td> 631 </tr> 632 <tr> 633 <td>mode</td> 634 <td>String</td> 635 <td>The transfer mode to use, either <em>ascii</em> or <em>binary</em>.</td> 636 <td>binary</td> 637 <td>No</td> 638 </tr> 639 <tr> 640 <td>clearfirst</td> 641 <td>Boolean</td> 642 <td>Delete all files in the remote directory before uploading</td> 643 <td>false</td> 644 <td>No</td> 645 </tr> 646 <tr> 647 <td>passive</td> 648 <td>Boolean</td> 649 <td>Open connection in passive mode</td> 650 <td>false</td> 651 <td>No</td> 652 </tr> 653 <tr> 654 <td>level</td> 655 <td>String</td> 656 <td>Control the level at which the task reports status 657 messages. One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 658 <em>debug</em>.</td> 659 <td><em>verbose</em></td> 660 <td>No</td> 661 </tr> 662 </tbody> 663 </table> 664 <h3>Supported Nested Tags</h3> 665 <ul> 666 <li>fileset 667 <p>The files to deploy</p></li> 668 </ul> 669 670 <h2> 671 <a name="GitInitTask"></a>GitInitTask 672 </h2> 673 <p>Create an empty git repository or reinitialize an existing one.</p> 674 <h3>Attributes</h3> 675 <table> 676 <thead> 677 <tr> 678 <th>Name</th> 679 <th>Type</th> 680 <th>Description</th> 681 <th>Default</th> 682 <th>Required</th> 683 </tr> 684 </thead> 685 <tbody> 686 <tr> 687 <td>gitPath</td> 688 <td>String</td> 689 <td>Path to Git binary</td> 690 <td>/usr/bin/git</td> 691 <td>No</td> 692 </tr> 693 <tr> 694 <td>repository</td> 695 <td>String</td> 696 <td>Path to Git repository</td> 697 <td>n/a</td> 698 <td>Yes</td> 699 </tr> 700 <tr> 701 <td>bare</td> 702 <td>Boolean</td> 703 <td>Create bare repository. See --bare option of <a 704 href="http://www.kernel.org/pub/software/scm/git/docs/git-init.html">git-init</a>.</td> 705 <td>false</td> 706 <td>No</td> 707 </tr> 708 </tbody> 709 </table> 710 <h3>Example</h3> 711 <pre> 550 <h3>Attributes</h3> 551 <table> 552 <thead> 553 <tr> 554 <th>Name</th> 555 <th>Type</th> 556 <th>Description</th> 557 <th>Default</th> 558 <th>Required</th> 559 </tr> 560 </thead> 561 <tbody> 562 <tr> 563 <td>host</td> 564 <td>String</td> 565 <td>The hostname of the remote server.</td> 566 <td>none</td> 567 <td>Yes</td> 568 </tr> 569 <tr> 570 <td>port</td> 571 <td>Boolean</td> 572 <td>The port of the remote server.</td> 573 <td>21</td> 574 <td>No</td> 575 </tr> 576 <tr> 577 <td>username</td> 578 <td>String</td> 579 <td>The username to use when logging in to the remote server.</td> 580 <td>none</td> 581 <td>Yes</td> 582 </tr> 583 <tr> 584 <td>password</td> 585 <td>String</td> 586 <td>The password to use when logging in to the remote server</td> 587 <td>none</td> 588 <td>Yes</td> 589 </tr> 590 <tr> 591 <td>dir</td> 592 <td>String</td> 593 <td>Directory on the remote server.</td> 594 <td>none</td> 595 <td>No</td> 596 </tr> 597 <tr> 598 <td>mode</td> 599 <td>String</td> 600 <td>The transfer mode to use, either <em>ascii</em> or <em>binary</em>.</td> 601 <td>binary</td> 602 <td>No</td> 603 </tr> 604 <tr> 605 <td>clearfirst</td> 606 <td>Boolean</td> 607 <td>Delete all files in the remote directory before uploading</td> 608 <td>false</td> 609 <td>No</td> 610 </tr> 611 <tr> 612 <td>passive</td> 613 <td>Boolean</td> 614 <td>Open connection in passive mode</td> 615 <td>false</td> 616 <td>No</td> 617 </tr> 618 <tr> 619 <td>level</td> 620 <td>String</td> 621 <td>Control the level at which the task reports status messages. One of 622 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 623 <em>debug</em>.</td> 624 <td><em>verbose</em></td> 625 <td>No</td> 626 </tr> 627 </tbody> 628 </table> 629 <h3>Supported Nested Tags</h3> 630 <ul> 631 <li>fileset <p>The files to deploy</p></li> 632 </ul> 633 <h2> 634 <a name="GitInitTask"></a>GitInitTask </h2> 635 <p>Create an empty git repository or reinitialize an existing one.</p> 636 <h3>Attributes</h3> 637 <table> 638 <thead> 639 <tr> 640 <th>Name</th> 641 <th>Type</th> 642 <th>Description</th> 643 <th>Default</th> 644 <th>Required</th> 645 </tr> 646 </thead> 647 <tbody> 648 <tr> 649 <td>gitPath</td> 650 <td>String</td> 651 <td>Path to Git binary</td> 652 <td>/usr/bin/git</td> 653 <td>No</td> 654 </tr> 655 <tr> 656 <td>repository</td> 657 <td>String</td> 658 <td>Path to Git repository</td> 659 <td>n/a</td> 660 <td>Yes</td> 661 </tr> 662 <tr> 663 <td>bare</td> 664 <td>Boolean</td> 665 <td>Create bare repository. See --bare option of <a 666 href="http://www.kernel.org/pub/software/scm/git/docs/git-init.html" 667 >git-init</a>.</td> 668 <td>false</td> 669 <td>No</td> 670 </tr> 671 </tbody> 672 </table> 673 <h3>Example</h3> 674 <pre> 712 675 <property name="repo.dir" value="./relative/path/to/repo" /> 713 676 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 719 682 <gitinit bare="true" repository="${repo.dir.resolved}" /> 720 683 </pre> 721 722 723 <h2> 724 <a name="GitCloneTask"></a>GitCloneTask 725 </h2> 726 <p>Clone a repository into a new directory.</p> 727 728 <h3>Attributes</h3> 729 <table> 730 <thead> 731 <tr> 732 <th>Name</th> 733 <th>Type</th> 734 <th>Description</th> 735 <th>Default</th> 736 <th>Required</th> 737 </tr> 738 </thead> 739 <tbody> 740 <tr> 741 <td>gitPath</td> 742 <td>String</td> 743 <td>Path to Git binary</td> 744 <td>/usr/bin/git</td> 745 <td>No</td> 746 </tr> 747 <tr> 748 <td>repository</td> 749 <td>String</td> 750 <td>The (possibly remote) repository to clone from.</td> 751 <td>n/a</td> 752 <td>Yes</td> 753 </tr> 754 <tr> 755 <td>targetPath</td> 756 <td>String</td> 757 <td>The name of a new directory to clone into. Cloning into an 758 existing directory is only allowed if the directory is empty.</td> 759 <td>n/a</td> 760 <td>Yes</td> 761 </tr> 762 <tr> 763 <td>bare</td> 764 <td>Boolean</td> 765 <td>Create bare repository. See --bare option of <a 766 href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html">git-clone</a>.</td> 767 <td>false</td> 768 <td>No</td> 769 </tr> 770 </tbody> 771 </table> 772 <h3>Example</h3> 773 <pre> 684 <h2> 685 <a name="GitCloneTask"></a>GitCloneTask </h2> 686 <p>Clone a repository into a new directory.</p> 687 <h3>Attributes</h3> 688 <table> 689 <thead> 690 <tr> 691 <th>Name</th> 692 <th>Type</th> 693 <th>Description</th> 694 <th>Default</th> 695 <th>Required</th> 696 </tr> 697 </thead> 698 <tbody> 699 <tr> 700 <td>gitPath</td> 701 <td>String</td> 702 <td>Path to Git binary</td> 703 <td>/usr/bin/git</td> 704 <td>No</td> 705 </tr> 706 <tr> 707 <td>repository</td> 708 <td>String</td> 709 <td>The (possibly remote) repository to clone from.</td> 710 <td>n/a</td> 711 <td>Yes</td> 712 </tr> 713 <tr> 714 <td>targetPath</td> 715 <td>String</td> 716 <td>The name of a new directory to clone into. Cloning into an existing 717 directory is only allowed if the directory is empty.</td> 718 <td>n/a</td> 719 <td>Yes</td> 720 </tr> 721 <tr> 722 <td>bare</td> 723 <td>Boolean</td> 724 <td>Create bare repository. See --bare option of <a 725 href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html" 726 >git-clone</a>.</td> 727 <td>false</td> 728 <td>No</td> 729 </tr> 730 </tbody> 731 </table> 732 <h3>Example</h3> 733 <pre> 774 734 <property name="repo.dir" value="./relative/path/to/repo" /> 775 735 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 786 746 bare="true" /> 787 747 </pre> 788 789 <h2> 790 <a name="GitGcTask"></a>GitGcTask 791 </h2> 792 <p>Cleanup unnecessary files and optimize the local repository.</p> 793 794 <h3>Attributes</h3> 795 <table> 796 <thead> 797 <tr> 798 <th>Name</th> 799 <th>Type</th> 800 <th>Description</th> 801 <th>Default</th> 802 <th>Required</th> 803 </tr> 804 </thead> 805 <tbody> 806 <tr> 807 <td>gitPath</td> 808 <td>String</td> 809 <td>Path to Git binary</td> 810 <td>/usr/bin/git</td> 811 <td>No</td> 812 </tr> 813 <tr> 814 <td>repository</td> 815 <td>String</td> 816 <td>The repository to cleanup.</td> 817 <td>n/a</td> 818 <td>Yes</td> 819 </tr> 820 <tr> 821 <td>aggressive</td> 822 <td>Boolean</td> 823 <td>This option will cause git gc to more aggressively optimize 824 the repository at the expense of taking much more time. See 825 --aggressive option of <a 826 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td> 827 <td>false</td> 828 <td>No</td> 829 </tr> 830 <tr> 831 <td>auto</td> 832 <td>Boolean</td> 833 <td>With this option, git gc checks whether any housekeeping is 834 required; if not, it exits without performing any work. See --auto 835 option of <a 836 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td> 837 <td>false</td> 838 <td>No</td> 839 </tr> 840 <tr> 841 <td>noprune</td> 842 <td>Boolean</td> 843 <td>Do not prune any loose objects. See --no-prune option of <a 844 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td> 845 <td>false</td> 846 <td>No</td> 847 </tr> 848 <tr> 849 <td>prune</td> 850 <td>string</td> 851 <td>Prune loose objects older than date. See --prune option of 852 <a 853 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td> 854 <td>2.weeks.ago</td> 855 <td>No</td> 856 </tr> 857 </tbody> 858 </table> 859 <h3>Example</h3> 860 <pre> 748 <h2> 749 <a name="GitGcTask"></a>GitGcTask </h2> 750 <p>Cleanup unnecessary files and optimize the local repository.</p> 751 <h3>Attributes</h3> 752 <table> 753 <thead> 754 <tr> 755 <th>Name</th> 756 <th>Type</th> 757 <th>Description</th> 758 <th>Default</th> 759 <th>Required</th> 760 </tr> 761 </thead> 762 <tbody> 763 <tr> 764 <td>gitPath</td> 765 <td>String</td> 766 <td>Path to Git binary</td> 767 <td>/usr/bin/git</td> 768 <td>No</td> 769 </tr> 770 <tr> 771 <td>repository</td> 772 <td>String</td> 773 <td>The repository to cleanup.</td> 774 <td>n/a</td> 775 <td>Yes</td> 776 </tr> 777 <tr> 778 <td>aggressive</td> 779 <td>Boolean</td> 780 <td>This option will cause git gc to more aggressively optimize the repository 781 at the expense of taking much more time. See --aggressive option of <a 782 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html" 783 >git-gc</a>.</td> 784 <td>false</td> 785 <td>No</td> 786 </tr> 787 <tr> 788 <td>auto</td> 789 <td>Boolean</td> 790 <td>With this option, git gc checks whether any housekeeping is required; if 791 not, it exits without performing any work. See --auto option of <a 792 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html" 793 >git-gc</a>.</td> 794 <td>false</td> 795 <td>No</td> 796 </tr> 797 <tr> 798 <td>noprune</td> 799 <td>Boolean</td> 800 <td>Do not prune any loose objects. See --no-prune option of <a 801 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html" 802 >git-gc</a>.</td> 803 <td>false</td> 804 <td>No</td> 805 </tr> 806 <tr> 807 <td>prune</td> 808 <td>string</td> 809 <td>Prune loose objects older than date. See --prune option of <a 810 href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html" 811 >git-gc</a>.</td> 812 <td>2.weeks.ago</td> 813 <td>No</td> 814 </tr> 815 </tbody> 816 </table> 817 <h3>Example</h3> 818 <pre> 861 819 <property name="repo.dir" value="./relative/path/to/repo" /> 862 820 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 873 831 prune="1.week.ago" /> 874 832 </pre> 875 876 <h2> 877 <a name="GitBranchTask"></a>GitBranchTask 878 </h2> 879 <p> 880 Create, move or delete repository branches. See official <a 881 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">documentation</a> 882 (branch listing functionality is omitted in current implementation). 883 </p> 884 <h3>Attributes</h3> 885 <table> 886 <thead> 887 <tr> 888 <th>Name</th> 889 <th>Type</th> 890 <th>Description</th> 891 <th>Default</th> 892 <th>Required</th> 893 </tr> 894 </thead> 895 <tbody> 896 <tr> 897 <td>gitPath</td> 898 <td>String</td> 899 <td>Path to Git binary</td> 900 <td>/usr/bin/git</td> 901 <td>No</td> 902 </tr> 903 <tr> 904 <td>repository</td> 905 <td>String</td> 906 <td>Path to Git repository</td> 907 <td>n/a</td> 908 <td>Yes</td> 909 </tr> 910 <tr> 911 <td>branchname</td> 912 <td>String</td> 913 <td>The name of the branch to create or delete.</td> 914 <td>n/a</td> 915 <td>Yes</td> 916 </tr> 917 <tr> 918 <td>newbranch</td> 919 <td>String</td> 920 <td>The new name for an existing branch.</td> 921 <td>n/a</td> 922 <td>Yes, if branch move invoked</td> 923 </tr> 924 <tr> 925 <td>startpoint</td> 926 <td>String</td> 927 <td>The new branch head will point to this commit. It may be 928 given as a branch name, a commit-id, or a tag. If this option is 929 omitted, the current HEAD will be used instead. See 930 <start-point> argument of <a 931 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td> 932 <td></td> 933 <td>No</td> 934 </tr> 935 <tr> 936 <td>setupstream</td> 937 <td>String</td> 938 <td>If specified branch does not exist yet or if --force has 939 been given, acts exactly like --track. Otherwise sets up 940 configuration like --track would when creating the branch, except 941 that where branch points to is not changed. See --set-upstream 942 option of <a 943 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td> 944 <td></td> 945 <td>No</td> 946 </tr> 947 <tr> 948 <td>track</td> 949 <td>Boolean</td> 950 <td>See --track option of <a 951 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td> 952 <td>false</td> 953 <td>No</td> 954 </tr> 955 <tr> 956 <td>notrack</td> 957 <td>Boolean</td> 958 <td>See --no-track option of <a 959 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td> 960 <td>false</td> 961 <td>No</td> 962 </tr> 963 <tr> 964 <td>force</td> 965 <td>Boolean</td> 966 <td>Reset <branchname> to <startpoint> if 967 <branchname> exists already. Without -f git branch refuses to 968 change an existing branch.</td> 969 <td>false</td> 970 <td>No</td> 971 </tr> 972 <tr> 973 <td>move</td> 974 <td>Boolean</td> 975 <td>Move/rename a branch and the corresponding reflog.</td> 976 <td>false</td> 977 <td>No</td> 978 </tr> 979 <tr> 980 <td>forcemove</td> 981 <td>Boolean</td> 982 <td>Move/rename a branch even if the new branch name already 983 exists.</td> 984 <td>false</td> 985 <td>No</td> 986 </tr> 987 <tr> 988 <td>delete</td> 989 <td>Boolean</td> 990 <td>Delete a branch. The branch must be fully merged in its 991 upstream branch, or in HEAD if no upstream was set with --track or 992 --set-upstream.</td> 993 <td>false</td> 994 <td>No</td> 995 </tr> 996 <tr> 997 <td>forcedelete</td> 998 <td>Boolean</td> 999 <td>Delete a branch irrespective of its merged status.</td> 1000 <td>false</td> 1001 <td>No</td> 1002 </tr> 1003 </tbody> 1004 </table> 1005 <h3>Example</h3> 1006 <pre> 833 <h2> 834 <a name="GitBranchTask"></a>GitBranchTask </h2> 835 <p> Create, move or delete repository branches. See official <a 836 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html" 837 >documentation</a> (branch listing functionality is omitted in current 838 implementation). </p> 839 <h3>Attributes</h3> 840 <table> 841 <thead> 842 <tr> 843 <th>Name</th> 844 <th>Type</th> 845 <th>Description</th> 846 <th>Default</th> 847 <th>Required</th> 848 </tr> 849 </thead> 850 <tbody> 851 <tr> 852 <td>gitPath</td> 853 <td>String</td> 854 <td>Path to Git binary</td> 855 <td>/usr/bin/git</td> 856 <td>No</td> 857 </tr> 858 <tr> 859 <td>repository</td> 860 <td>String</td> 861 <td>Path to Git repository</td> 862 <td>n/a</td> 863 <td>Yes</td> 864 </tr> 865 <tr> 866 <td>branchname</td> 867 <td>String</td> 868 <td>The name of the branch to create or delete.</td> 869 <td>n/a</td> 870 <td>Yes</td> 871 </tr> 872 <tr> 873 <td>newbranch</td> 874 <td>String</td> 875 <td>The new name for an existing branch.</td> 876 <td>n/a</td> 877 <td>Yes, if branch move invoked</td> 878 </tr> 879 <tr> 880 <td>startpoint</td> 881 <td>String</td> 882 <td>The new branch head will point to this commit. It may be given as a branch 883 name, a commit-id, or a tag. If this option is omitted, the current HEAD 884 will be used instead. See <start-point> argument of <a 885 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html" 886 >git-branch</a>.</td> 887 <td></td> 888 <td>No</td> 889 </tr> 890 <tr> 891 <td>setupstream</td> 892 <td>String</td> 893 <td>If specified branch does not exist yet or if --force has been given, acts 894 exactly like --track. Otherwise sets up configuration like --track would 895 when creating the branch, except that where branch points to is not changed. 896 See --set-upstream option of <a 897 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html" 898 >git-branch</a>.</td> 899 <td></td> 900 <td>No</td> 901 </tr> 902 <tr> 903 <td>track</td> 904 <td>Boolean</td> 905 <td>See --track option of <a 906 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html" 907 >git-branch</a>.</td> 908 <td>false</td> 909 <td>No</td> 910 </tr> 911 <tr> 912 <td>notrack</td> 913 <td>Boolean</td> 914 <td>See --no-track option of <a 915 href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html" 916 >git-branch</a>.</td> 917 <td>false</td> 918 <td>No</td> 919 </tr> 920 <tr> 921 <td>force</td> 922 <td>Boolean</td> 923 <td>Reset <branchname> to <startpoint> if <branchname> exists 924 already. Without -f git branch refuses to change an existing branch.</td> 925 <td>false</td> 926 <td>No</td> 927 </tr> 928 <tr> 929 <td>move</td> 930 <td>Boolean</td> 931 <td>Move/rename a branch and the corresponding reflog.</td> 932 <td>false</td> 933 <td>No</td> 934 </tr> 935 <tr> 936 <td>forcemove</td> 937 <td>Boolean</td> 938 <td>Move/rename a branch even if the new branch name already exists.</td> 939 <td>false</td> 940 <td>No</td> 941 </tr> 942 <tr> 943 <td>delete</td> 944 <td>Boolean</td> 945 <td>Delete a branch. The branch must be fully merged in its upstream branch, or 946 in HEAD if no upstream was set with --track or --set-upstream.</td> 947 <td>false</td> 948 <td>No</td> 949 </tr> 950 <tr> 951 <td>forcedelete</td> 952 <td>Boolean</td> 953 <td>Delete a branch irrespective of its merged status.</td> 954 <td>false</td> 955 <td>No</td> 956 </tr> 957 </tbody> 958 </table> 959 <h3>Example</h3> 960 <pre> 1007 961 <property name="repo.dir" value="./relative/path/to/repo" /> 1008 962 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1046 1000 1047 1001 </pre> 1048 1049 <h2> 1050 <a name="GitFetchTask"></a>GitFetchTask 1051 </h2> 1052 <p> 1053 Download objects and refs from another repository. See official <a 1054 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">documentation</a>. 1055 </p> 1056 <h3>Attributes</h3> 1057 <table> 1058 <thead> 1059 <tr> 1060 <th>Name</th> 1061 <th>Type</th> 1062 <th>Description</th> 1063 <th>Default</th> 1064 <th>Required</th> 1065 </tr> 1066 </thead> 1067 <tbody> 1068 <tr> 1069 <td>gitPath</td> 1070 <td>String</td> 1071 <td>Path to Git binary</td> 1072 <td>/usr/bin/git</td> 1073 <td>No</td> 1074 </tr> 1075 <tr> 1076 <td>repository</td> 1077 <td>String</td> 1078 <td>Path to Git repository</td> 1079 <td>n/a</td> 1080 <td>Yes</td> 1081 </tr> 1082 <tr> 1083 <td>source</td> 1084 <td>String</td> 1085 <td>The "remote" repository that is the source of a fetch or 1086 pull operation. See <repository> in <a 1087 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1088 <td>origin</td> 1089 <td>No</td> 1090 </tr> 1091 <tr> 1092 <td>refspec</td> 1093 <td>String</td> 1094 <td>See <refspec> in <a 1095 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1096 <td></td> 1097 <td>No</td> 1098 </tr> 1099 <tr> 1100 <td>group</td> 1101 <td>String</td> 1102 <td>A name referring to a list of repositories as the value of 1103 remotes.<group> in the configuration file. See <group> 1104 in <a 1105 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1106 <td></td> 1107 <td>No</td> 1108 </tr> 1109 <tr> 1110 <td>quiet</td> 1111 <td>Boolean</td> 1112 <td>Silence any internally used git commands. Progress is not 1113 reported to the standard error stream. See --quiet in <a 1114 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1115 <td>false</td> 1116 <td>No</td> 1117 </tr> 1118 <tr> 1119 <td>all</td> 1120 <td>Boolean</td> 1121 <td>Fetch all remotes. See --all in <a 1122 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1123 <td>false</td> 1124 <td>No</td> 1125 </tr> 1126 <tr> 1127 <td>keep</td> 1128 <td>Boolean</td> 1129 <td>Keep downloaded pack. See --keep in <a 1130 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1131 <td>false</td> 1132 <td>No</td> 1133 </tr> 1134 <tr> 1135 <td>prune</td> 1136 <td>Boolean</td> 1137 <td>After fetching, remove any remote tracking branches which 1138 no longer exist on the remote. See --prune in <a 1139 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1140 <td>false</td> 1141 <td>No</td> 1142 </tr> 1143 <tr> 1144 <td>tags</td> 1145 <td>Boolean</td> 1146 <td>See --tags in <a 1147 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1148 <td>false</td> 1149 <td>No</td> 1150 </tr> 1151 <tr> 1152 <td>notags</td> 1153 <td>Boolean</td> 1154 <td>See --no-tags in <a 1155 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1156 <td>false</td> 1157 <td>No</td> 1158 </tr> 1159 <tr> 1160 <td>force</td> 1161 <td>Boolean</td> 1162 <td>When git fetch is used with <rbranch>:<lbranch> 1163 refspec, it refuses to update the local branch <lbranch> 1164 unless the remote branch <rbranch> it fetches is a descendant 1165 of <lbranch>. This option overrides that check. See --force 1166 in <a 1167 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td> 1168 <td>false</td> 1169 <td>No</td> 1170 </tr> 1171 </tbody> 1172 </table> 1173 <h3>Example</h3> 1174 <pre> 1002 <h2> 1003 <a name="GitFetchTask"></a>GitFetchTask </h2> 1004 <p> Download objects and refs from another repository. See official <a 1005 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1006 >documentation</a>. </p> 1007 <h3>Attributes</h3> 1008 <table> 1009 <thead> 1010 <tr> 1011 <th>Name</th> 1012 <th>Type</th> 1013 <th>Description</th> 1014 <th>Default</th> 1015 <th>Required</th> 1016 </tr> 1017 </thead> 1018 <tbody> 1019 <tr> 1020 <td>gitPath</td> 1021 <td>String</td> 1022 <td>Path to Git binary</td> 1023 <td>/usr/bin/git</td> 1024 <td>No</td> 1025 </tr> 1026 <tr> 1027 <td>repository</td> 1028 <td>String</td> 1029 <td>Path to Git repository</td> 1030 <td>n/a</td> 1031 <td>Yes</td> 1032 </tr> 1033 <tr> 1034 <td>source</td> 1035 <td>String</td> 1036 <td>The "remote" repository that is the source of a fetch or pull operation. See 1037 <repository> in <a 1038 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1039 >git-fetch</a>.</td> 1040 <td>origin</td> 1041 <td>No</td> 1042 </tr> 1043 <tr> 1044 <td>refspec</td> 1045 <td>String</td> 1046 <td>See <refspec> in <a 1047 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1048 >git-fetch</a>.</td> 1049 <td></td> 1050 <td>No</td> 1051 </tr> 1052 <tr> 1053 <td>group</td> 1054 <td>String</td> 1055 <td>A name referring to a list of repositories as the value of 1056 remotes.<group> in the configuration file. See <group> in <a 1057 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1058 >git-fetch</a>.</td> 1059 <td></td> 1060 <td>No</td> 1061 </tr> 1062 <tr> 1063 <td>quiet</td> 1064 <td>Boolean</td> 1065 <td>Silence any internally used git commands. Progress is not reported to the 1066 standard error stream. See --quiet in <a 1067 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1068 >git-fetch</a>.</td> 1069 <td>false</td> 1070 <td>No</td> 1071 </tr> 1072 <tr> 1073 <td>all</td> 1074 <td>Boolean</td> 1075 <td>Fetch all remotes. See --all in <a 1076 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1077 >git-fetch</a>.</td> 1078 <td>false</td> 1079 <td>No</td> 1080 </tr> 1081 <tr> 1082 <td>keep</td> 1083 <td>Boolean</td> 1084 <td>Keep downloaded pack. See --keep in <a 1085 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1086 >git-fetch</a>.</td> 1087 <td>false</td> 1088 <td>No</td> 1089 </tr> 1090 <tr> 1091 <td>prune</td> 1092 <td>Boolean</td> 1093 <td>After fetching, remove any remote tracking branches which no longer exist on 1094 the remote. See --prune in <a 1095 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1096 >git-fetch</a>.</td> 1097 <td>false</td> 1098 <td>No</td> 1099 </tr> 1100 <tr> 1101 <td>tags</td> 1102 <td>Boolean</td> 1103 <td>See --tags in <a 1104 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1105 >git-fetch</a>.</td> 1106 <td>false</td> 1107 <td>No</td> 1108 </tr> 1109 <tr> 1110 <td>notags</td> 1111 <td>Boolean</td> 1112 <td>See --no-tags in <a 1113 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1114 >git-fetch</a>.</td> 1115 <td>false</td> 1116 <td>No</td> 1117 </tr> 1118 <tr> 1119 <td>force</td> 1120 <td>Boolean</td> 1121 <td>When git fetch is used with <rbranch>:<lbranch> refspec, it 1122 refuses to update the local branch <lbranch> unless the remote branch 1123 <rbranch> it fetches is a descendant of <lbranch>. This option 1124 overrides that check. See --force in <a 1125 href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" 1126 >git-fetch</a>.</td> 1127 <td>false</td> 1128 <td>No</td> 1129 </tr> 1130 </tbody> 1131 </table> 1132 <h3>Example</h3> 1133 <pre> 1175 1134 <property name="repo.dir" value="./relative/path/to/repo" /> 1176 1135 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1190 1149 quiet="true" /> 1191 1150 </pre> 1192 1193 <h2> 1194 <a name="GitCheckoutTask"></a>GitCheckoutTask 1195 </h2> 1196 <p> 1197 Checkout a branch or paths to the working tree. See official <a 1198 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">documentation</a>. 1199 </p> 1200 <h3>Attributes</h3> 1201 <table> 1202 <thead> 1203 <tr> 1204 <th>Name</th> 1205 <th>Type</th> 1206 <th>Description</th> 1207 <th>Default</th> 1208 <th>Required</th> 1209 </tr> 1210 </thead> 1211 <tbody> 1212 <tr> 1213 <td>gitPath</td> 1214 <td>String</td> 1215 <td>Path to Git binary</td> 1216 <td>/usr/bin/git</td> 1217 <td>No</td> 1218 </tr> 1219 <tr> 1220 <td>repository</td> 1221 <td>String</td> 1222 <td>Path to Git repository</td> 1223 <td>n/a</td> 1224 <td>Yes</td> 1225 </tr> 1226 <tr> 1227 <td>branchname</td> 1228 <td>String</td> 1229 <td>Branch to checkout. See <branch> in <a 1230 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1231 <td>origin</td> 1232 <td>No</td> 1233 </tr> 1234 <tr> 1235 <td>startpoint</td> 1236 <td>String</td> 1237 <td>The name of a commit at which to start the new branch; 1238 Defaults to HEAD. See <start_point> in <a 1239 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1240 <td></td> 1241 <td>No</td> 1242 </tr> 1243 <tr> 1244 <td>create</td> 1245 <td>Boolean</td> 1246 <td>Create a new branch named <branchname> and start it 1247 at <startpoint></td> 1248 <td>false</td> 1249 <td>No</td> 1250 </tr> 1251 <tr> 1252 <td>forcecreate</td> 1253 <td>Boolean</td> 1254 <td>Creates the branch <branchname> and start it at 1255 <startpoint>; if it already exists, then reset it to 1256 <startpoint>. This is equivalent to running "git branch" with 1257 "-f".</td> 1258 <td>false</td> 1259 <td>No</td> 1260 </tr> 1261 <tr> 1262 <td>merge</td> 1263 <td>Boolean</td> 1264 <td>See --merge in <a 1265 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1266 <td>false</td> 1267 <td>No</td> 1268 </tr> 1269 <tr> 1270 <td>track</td> 1271 <td>Boolean</td> 1272 <td>See --track in <a 1273 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1274 <td>false</td> 1275 <td>No</td> 1276 </tr> 1277 <tr> 1278 <td>notrack</td> 1279 <td>Boolean</td> 1280 <td>See --no-track in <a 1281 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1282 <td>false</td> 1283 <td>No</td> 1284 </tr> 1285 <tr> 1286 <td>quiet</td> 1287 <td>Boolean</td> 1288 <td>Quiet, suppress feedback messages. See --quiet in <a 1289 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1290 <td>false</td> 1291 <td>No</td> 1292 </tr> 1293 <tr> 1294 <td>force</td> 1295 <td>Boolean</td> 1296 <td>When switching branches, proceed even if the index or the 1297 working tree differs from HEAD. This is used to throw away local 1298 changes. See --force in <a 1299 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td> 1300 <td>false</td> 1301 <td>No</td> 1302 </tr> 1303 </tbody> 1304 </table> 1305 <h3>Example</h3> 1306 <pre> 1151 <h2> 1152 <a name="GitCheckoutTask"></a>GitCheckoutTask </h2> 1153 <p> Checkout a branch or paths to the working tree. See official <a 1154 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1155 >documentation</a>. </p> 1156 <h3>Attributes</h3> 1157 <table> 1158 <thead> 1159 <tr> 1160 <th>Name</th> 1161 <th>Type</th> 1162 <th>Description</th> 1163 <th>Default</th> 1164 <th>Required</th> 1165 </tr> 1166 </thead> 1167 <tbody> 1168 <tr> 1169 <td>gitPath</td> 1170 <td>String</td> 1171 <td>Path to Git binary</td> 1172 <td>/usr/bin/git</td> 1173 <td>No</td> 1174 </tr> 1175 <tr> 1176 <td>repository</td> 1177 <td>String</td> 1178 <td>Path to Git repository</td> 1179 <td>n/a</td> 1180 <td>Yes</td> 1181 </tr> 1182 <tr> 1183 <td>branchname</td> 1184 <td>String</td> 1185 <td>Branch to checkout. See <branch> in <a 1186 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1187 >git-checkout</a>.</td> 1188 <td>origin</td> 1189 <td>No</td> 1190 </tr> 1191 <tr> 1192 <td>startpoint</td> 1193 <td>String</td> 1194 <td>The name of a commit at which to start the new branch; Defaults to HEAD. See 1195 <start_point> in <a 1196 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1197 >git-checkout</a>.</td> 1198 <td></td> 1199 <td>No</td> 1200 </tr> 1201 <tr> 1202 <td>create</td> 1203 <td>Boolean</td> 1204 <td>Create a new branch named <branchname> and start it at 1205 <startpoint></td> 1206 <td>false</td> 1207 <td>No</td> 1208 </tr> 1209 <tr> 1210 <td>forcecreate</td> 1211 <td>Boolean</td> 1212 <td>Creates the branch <branchname> and start it at <startpoint>; if 1213 it already exists, then reset it to <startpoint>. This is equivalent 1214 to running "git branch" with "-f".</td> 1215 <td>false</td> 1216 <td>No</td> 1217 </tr> 1218 <tr> 1219 <td>merge</td> 1220 <td>Boolean</td> 1221 <td>See --merge in <a 1222 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1223 >git-checkout</a>.</td> 1224 <td>false</td> 1225 <td>No</td> 1226 </tr> 1227 <tr> 1228 <td>track</td> 1229 <td>Boolean</td> 1230 <td>See --track in <a 1231 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1232 >git-checkout</a>.</td> 1233 <td>false</td> 1234 <td>No</td> 1235 </tr> 1236 <tr> 1237 <td>notrack</td> 1238 <td>Boolean</td> 1239 <td>See --no-track in <a 1240 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1241 >git-checkout</a>.</td> 1242 <td>false</td> 1243 <td>No</td> 1244 </tr> 1245 <tr> 1246 <td>quiet</td> 1247 <td>Boolean</td> 1248 <td>Quiet, suppress feedback messages. See --quiet in <a 1249 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1250 >git-checkout</a>.</td> 1251 <td>false</td> 1252 <td>No</td> 1253 </tr> 1254 <tr> 1255 <td>force</td> 1256 <td>Boolean</td> 1257 <td>When switching branches, proceed even if the index or the working tree 1258 differs from HEAD. This is used to throw away local changes. See --force in 1259 <a 1260 href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" 1261 >git-checkout</a>.</td> 1262 <td>false</td> 1263 <td>No</td> 1264 </tr> 1265 </tbody> 1266 </table> 1267 <h3>Example</h3> 1268 <pre> 1307 1269 <property name="repo.dir" value="./relative/path/to/repo" /> 1308 1270 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1329 1291 forceCreate="true" /> 1330 1292 </pre> 1331 1332 <h2> 1333 <a name="GitMergeTask"></a>GitMergeTask 1334 </h2> 1335 <p> 1336 Join two or more development histories together. See official <a 1337 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">documentation</a>. 1338 </p> 1339 <h3>Attributes</h3> 1340 <table> 1341 <thead> 1342 <tr> 1343 <th>Name</th> 1344 <th>Type</th> 1345 <th>Description</th> 1346 <th>Default</th> 1347 <th>Required</th> 1348 </tr> 1349 </thead> 1350 <tbody> 1351 <tr> 1352 <td>gitPath</td> 1353 <td>String</td> 1354 <td>Path to Git binary</td> 1355 <td>/usr/bin/git</td> 1356 <td>No</td> 1357 </tr> 1358 <tr> 1359 <td>repository</td> 1360 <td>String</td> 1361 <td>Path to Git repository</td> 1362 <td>n/a</td> 1363 <td>Yes</td> 1364 </tr> 1365 <tr> 1366 <td>remote</td> 1367 <td>String</td> 1368 <td>Space separated list of branches to merge into current 1369 HEAD. See <commit> in <a 1370 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1371 <td>n/a</td> 1372 <td>No</td> 1373 </tr> 1374 <tr> 1375 <td>message</td> 1376 <td>String</td> 1377 <td>Commit message to be used for the merge commit (in case one 1378 is created). See <msg> in <a 1379 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1380 <td>n/a</td> 1381 <td>No</td> 1382 </tr> 1383 <tr> 1384 <td>fastForwardCommit</td> 1385 <td>Boolean</td> 1386 <td>If set false (default), will not generate a merge commit if 1387 the merge resolved as a fast-forward, only update the branch 1388 pointer.<br /> If set true, will generate a merge commit even if 1389 the merge resolved as a fast-forward. See --ff/--no-ff options in <a 1390 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1391 <td>False</td> 1392 <td>No</td> 1393 </tr> 1394 <tr> 1395 <td>strategy</td> 1396 <td>String</td> 1397 <td>Merge strategy. One of "resolve", "recursive", "octopus", 1398 "ours", or "subtree". See <strategy> in <a 1399 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1400 <td>n/a</td> 1401 <td>No</td> 1402 </tr> 1403 <tr> 1404 <td>strategyOption</td> 1405 <td>String</td> 1406 <td>Pass merge strategy specific option through to the merge 1407 strategy. See <strategy-option> in <a 1408 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1409 <td>n/a</td> 1410 <td>No</td> 1411 </tr> 1412 <tr> 1413 <td>commit</td> 1414 <td>Boolean</td> 1415 <td>See --commit in <a 1416 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1417 <td>false</td> 1418 <td>No</td> 1419 </tr> 1420 <tr> 1421 <td>nocommit</td> 1422 <td>Boolean</td> 1423 <td>See --no-commit in <a 1424 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1425 <td>false</td> 1426 <td>No</td> 1427 </tr> 1428 <tr> 1429 <td>quiet</td> 1430 <td>Boolean</td> 1431 <td>Quiet, suppress feedback messages. See --quiet in <a 1432 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td> 1433 <td>false</td> 1434 <td>No</td> 1435 </tr> 1436 </tbody> 1437 </table> 1438 <h3>Example</h3> 1439 <pre> 1293 <h2> 1294 <a name="GitMergeTask"></a>GitMergeTask </h2> 1295 <p> Join two or more development histories together. See official <a 1296 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1297 >documentation</a>. </p> 1298 <h3>Attributes</h3> 1299 <table> 1300 <thead> 1301 <tr> 1302 <th>Name</th> 1303 <th>Type</th> 1304 <th>Description</th> 1305 <th>Default</th> 1306 <th>Required</th> 1307 </tr> 1308 </thead> 1309 <tbody> 1310 <tr> 1311 <td>gitPath</td> 1312 <td>String</td> 1313 <td>Path to Git binary</td> 1314 <td>/usr/bin/git</td> 1315 <td>No</td> 1316 </tr> 1317 <tr> 1318 <td>repository</td> 1319 <td>String</td> 1320 <td>Path to Git repository</td> 1321 <td>n/a</td> 1322 <td>Yes</td> 1323 </tr> 1324 <tr> 1325 <td>remote</td> 1326 <td>String</td> 1327 <td>Space separated list of branches to merge into current HEAD. See 1328 <commit> in <a 1329 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1330 >git-merge</a>.</td> 1331 <td>n/a</td> 1332 <td>No</td> 1333 </tr> 1334 <tr> 1335 <td>message</td> 1336 <td>String</td> 1337 <td>Commit message to be used for the merge commit (in case one is created). See 1338 <msg> in <a 1339 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1340 >git-merge</a>.</td> 1341 <td>n/a</td> 1342 <td>No</td> 1343 </tr> 1344 <tr> 1345 <td>fastForwardCommit</td> 1346 <td>Boolean</td> 1347 <td>If set false (default), will not generate a merge commit if the merge 1348 resolved as a fast-forward, only update the branch pointer.<br /> If set 1349 true, will generate a merge commit even if the merge resolved as a 1350 fast-forward. See --ff/--no-ff options in <a 1351 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1352 >git-merge</a>.</td> 1353 <td>False</td> 1354 <td>No</td> 1355 </tr> 1356 <tr> 1357 <td>strategy</td> 1358 <td>String</td> 1359 <td>Merge strategy. One of "resolve", "recursive", "octopus", "ours", or 1360 "subtree". See <strategy> in <a 1361 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1362 >git-merge</a>.</td> 1363 <td>n/a</td> 1364 <td>No</td> 1365 </tr> 1366 <tr> 1367 <td>strategyOption</td> 1368 <td>String</td> 1369 <td>Pass merge strategy specific option through to the merge strategy. See 1370 <strategy-option> in <a 1371 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1372 >git-merge</a>.</td> 1373 <td>n/a</td> 1374 <td>No</td> 1375 </tr> 1376 <tr> 1377 <td>commit</td> 1378 <td>Boolean</td> 1379 <td>See --commit in <a 1380 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1381 >git-merge</a>.</td> 1382 <td>false</td> 1383 <td>No</td> 1384 </tr> 1385 <tr> 1386 <td>nocommit</td> 1387 <td>Boolean</td> 1388 <td>See --no-commit in <a 1389 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1390 >git-merge</a>.</td> 1391 <td>false</td> 1392 <td>No</td> 1393 </tr> 1394 <tr> 1395 <td>quiet</td> 1396 <td>Boolean</td> 1397 <td>Quiet, suppress feedback messages. See --quiet in <a 1398 href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" 1399 >git-merge</a>.</td> 1400 <td>false</td> 1401 <td>No</td> 1402 </tr> 1403 </tbody> 1404 </table> 1405 <h3>Example</h3> 1406 <pre> 1440 1407 <property name="repo.dir" value="./relative/path/to/repo" /> 1441 1408 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1460 1427 message="merging repos" commit="true" /> 1461 1428 </pre> 1462 1463 <h2> 1464 <a name="GitPullTask"></a>GitPullTask 1465 </h2> 1466 <p> 1467 Fetch from and merge with another repository or a local branch. See 1468 official <a 1469 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">documentation</a>. 1470 </p> 1471 <h3>Attributes</h3> 1472 <table> 1473 <thead> 1474 <tr> 1475 <th>Name</th> 1476 <th>Type</th> 1477 <th>Description</th> 1478 <th>Default</th> 1479 <th>Required</th> 1480 </tr> 1481 </thead> 1482 <tbody> 1483 <tr> 1484 <td>gitPath</td> 1485 <td>String</td> 1486 <td>Path to Git binary</td> 1487 <td>/usr/bin/git</td> 1488 <td>No</td> 1489 </tr> 1490 <tr> 1491 <td>repository</td> 1492 <td>String</td> 1493 <td>Path to Git repository</td> 1494 <td>n/a</td> 1495 <td>Yes</td> 1496 </tr> 1497 <tr> 1498 <td>all</td> 1499 <td>Boolean</td> 1500 <td>Fetch all remotes</td> 1501 <td>false</td> 1502 <td>No</td> 1503 </tr> 1504 <tr> 1505 <td>source</td> 1506 <td>String</td> 1507 <td>The "remote" repository that is the source of a fetch or 1508 pull operation. See <repository> in <a 1509 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1510 <td>origin</td> 1511 <td>Yes, if allRemotes set to false</td> 1512 </tr> 1513 <tr> 1514 <td>refspec</td> 1515 <td>String</td> 1516 <td>See <refspec> in <a 1517 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1518 <td>n/a</td> 1519 <td>No</td> 1520 </tr> 1521 <tr> 1522 <td>strategy</td> 1523 <td>String</td> 1524 <td>Merge strategy. One of "resolve", "recursive", "octopus", 1525 "ours", or "subtree". See <strategy> in <a 1526 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1527 <td>n/a</td> 1528 <td>No</td> 1529 </tr> 1530 <tr> 1531 <td>strategyOption</td> 1532 <td>String</td> 1533 <td>Pass merge strategy specific option through to the merge 1534 strategy. See <strategy-option> in <a 1535 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1536 <td>n/a</td> 1537 <td>No</td> 1538 </tr> 1539 <tr> 1540 <td>rebase</td> 1541 <td>Boolean</td> 1542 <td>See --rebase in <a 1543 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1544 <td>false</td> 1545 <td>No</td> 1546 </tr> 1547 <tr> 1548 <td>norebase</td> 1549 <td>Boolean</td> 1550 <td>See --no-rebase in <a 1551 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1552 <td>false</td> 1553 <td>No</td> 1554 </tr> 1555 <tr> 1556 <td>tags</td> 1557 <td>Boolean</td> 1558 <td>Enable tag references following. See --tags in <a 1559 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1560 <td>false</td> 1561 <td>No</td> 1562 </tr> 1563 <tr> 1564 <td>notags</td> 1565 <td>Boolean</td> 1566 <td>Disable tag references following. See --no-tags in <a 1567 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1568 <td>false</td> 1569 <td>No</td> 1570 </tr> 1571 <tr> 1572 <td>keepFiles</td> 1573 <td>Boolean</td> 1574 <td>See --keep in <a 1575 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1576 <td>false</td> 1577 <td>No</td> 1578 </tr> 1579 <tr> 1580 <td>append</td> 1581 <td>Boolean</td> 1582 <td>See --append in <a 1583 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1584 <td>false</td> 1585 <td>No</td> 1586 </tr> 1587 <tr> 1588 <td>quiet</td> 1589 <td>Boolean</td> 1590 <td>Quiet, suppress feedback messages. See --quiet in <a 1591 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1592 <td>false</td> 1593 <td>No</td> 1594 </tr> 1595 <tr> 1596 <td>force</td> 1597 <td>Boolean</td> 1598 <td>Force update. See --force in <a 1599 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td> 1600 <td>false</td> 1601 <td>No</td> 1602 </tr> 1603 </tbody> 1604 </table> 1605 <h3>Example</h3> 1606 <pre> 1429 <h2> 1430 <a name="GitPullTask"></a>GitPullTask </h2> 1431 <p> Fetch from and merge with another repository or a local branch. See official <a 1432 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1433 >documentation</a>. </p> 1434 <h3>Attributes</h3> 1435 <table> 1436 <thead> 1437 <tr> 1438 <th>Name</th> 1439 <th>Type</th> 1440 <th>Description</th> 1441 <th>Default</th> 1442 <th>Required</th> 1443 </tr> 1444 </thead> 1445 <tbody> 1446 <tr> 1447 <td>gitPath</td> 1448 <td>String</td> 1449 <td>Path to Git binary</td> 1450 <td>/usr/bin/git</td> 1451 <td>No</td> 1452 </tr> 1453 <tr> 1454 <td>repository</td> 1455 <td>String</td> 1456 <td>Path to Git repository</td> 1457 <td>n/a</td> 1458 <td>Yes</td> 1459 </tr> 1460 <tr> 1461 <td>all</td> 1462 <td>Boolean</td> 1463 <td>Fetch all remotes</td> 1464 <td>false</td> 1465 <td>No</td> 1466 </tr> 1467 <tr> 1468 <td>source</td> 1469 <td>String</td> 1470 <td>The "remote" repository that is the source of a fetch or pull operation. See 1471 <repository> in <a 1472 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1473 >git-pull</a>.</td> 1474 <td>origin</td> 1475 <td>Yes, if allRemotes set to false</td> 1476 </tr> 1477 <tr> 1478 <td>refspec</td> 1479 <td>String</td> 1480 <td>See <refspec> in <a 1481 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1482 >git-pull</a>.</td> 1483 <td>n/a</td> 1484 <td>No</td> 1485 </tr> 1486 <tr> 1487 <td>strategy</td> 1488 <td>String</td> 1489 <td>Merge strategy. One of "resolve", "recursive", "octopus", "ours", or 1490 "subtree". See <strategy> in <a 1491 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1492 >git-pull</a>.</td> 1493 <td>n/a</td> 1494 <td>No</td> 1495 </tr> 1496 <tr> 1497 <td>strategyOption</td> 1498 <td>String</td> 1499 <td>Pass merge strategy specific option through to the merge strategy. See 1500 <strategy-option> in <a 1501 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1502 >git-pull</a>.</td> 1503 <td>n/a</td> 1504 <td>No</td> 1505 </tr> 1506 <tr> 1507 <td>rebase</td> 1508 <td>Boolean</td> 1509 <td>See --rebase in <a 1510 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1511 >git-pull</a>.</td> 1512 <td>false</td> 1513 <td>No</td> 1514 </tr> 1515 <tr> 1516 <td>norebase</td> 1517 <td>Boolean</td> 1518 <td>See --no-rebase in <a 1519 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1520 >git-pull</a>.</td> 1521 <td>false</td> 1522 <td>No</td> 1523 </tr> 1524 <tr> 1525 <td>tags</td> 1526 <td>Boolean</td> 1527 <td>Enable tag references following. See --tags in <a 1528 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1529 >git-pull</a>.</td> 1530 <td>false</td> 1531 <td>No</td> 1532 </tr> 1533 <tr> 1534 <td>notags</td> 1535 <td>Boolean</td> 1536 <td>Disable tag references following. See --no-tags in <a 1537 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1538 >git-pull</a>.</td> 1539 <td>false</td> 1540 <td>No</td> 1541 </tr> 1542 <tr> 1543 <td>keepFiles</td> 1544 <td>Boolean</td> 1545 <td>See --keep in <a 1546 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1547 >git-pull</a>.</td> 1548 <td>false</td> 1549 <td>No</td> 1550 </tr> 1551 <tr> 1552 <td>append</td> 1553 <td>Boolean</td> 1554 <td>See --append in <a 1555 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1556 >git-pull</a>.</td> 1557 <td>false</td> 1558 <td>No</td> 1559 </tr> 1560 <tr> 1561 <td>quiet</td> 1562 <td>Boolean</td> 1563 <td>Quiet, suppress feedback messages. See --quiet in <a 1564 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1565 >git-pull</a>.</td> 1566 <td>false</td> 1567 <td>No</td> 1568 </tr> 1569 <tr> 1570 <td>force</td> 1571 <td>Boolean</td> 1572 <td>Force update. See --force in <a 1573 href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html" 1574 >git-pull</a>.</td> 1575 <td>false</td> 1576 <td>No</td> 1577 </tr> 1578 </tbody> 1579 </table> 1580 <h3>Example</h3> 1581 <pre> 1607 1582 <property name="repo.dir" value="./relative/path/to/repo" /> 1608 1583 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1624 1599 force="true" quiet="true" rebase="true" /> 1625 1600 </pre> 1626 1627 1628 <h2> 1629 <a name="GitPushTask"></a>GitPushTask 1630 </h2> 1631 <p> 1632 Update remote refs along with associated objects. See official <a 1633 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">documentation</a>. 1634 </p> 1635 <h3>Attributes</h3> 1636 <table> 1637 <thead> 1638 <tr> 1639 <th>Name</th> 1640 <th>Type</th> 1641 <th>Description</th> 1642 <th>Default</th> 1643 <th>Required</th> 1644 </tr> 1645 </thead> 1646 <tbody> 1647 <tr> 1648 <td>gitPath</td> 1649 <td>String</td> 1650 <td>Path to Git binary</td> 1651 <td>/usr/bin/git</td> 1652 <td>No</td> 1653 </tr> 1654 <tr> 1655 <td>repository</td> 1656 <td>String</td> 1657 <td>Path to Git repository</td> 1658 <td>n/a</td> 1659 <td>Yes</td> 1660 </tr> 1661 <tr> 1662 <td>all</td> 1663 <td>Boolean</td> 1664 <td>Push all references</td> 1665 <td>false</td> 1666 <td>No</td> 1667 </tr> 1668 <tr> 1669 <td>destination</td> 1670 <td>String</td> 1671 <td>The "remote" repository that is destination of a push 1672 operation. See <repository> in <a 1673 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1674 <td>origin</td> 1675 <td>Yes, if allRemotes set to false</td> 1676 </tr> 1677 <tr> 1678 <td>refspec</td> 1679 <td>String</td> 1680 <td>See <refspec> in <a 1681 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1682 <td>n/a</td> 1683 <td>No</td> 1684 </tr> 1685 <tr> 1686 <td>mirror</td> 1687 <td>Boolean</td> 1688 <td>See --mirror in <a 1689 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1690 <td>false</td> 1691 <td>No</td> 1692 </tr> 1693 <tr> 1694 <td>delete</td> 1695 <td>Boolean</td> 1696 <td>Delete "remote" reference. Same as prefixing the refspec 1697 with colon. See --delete in <a 1698 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1699 <td>false</td> 1700 <td>No</td> 1701 </tr> 1702 <tr> 1703 <td>tags</td> 1704 <td>Boolean</td> 1705 <td>Push all references under refs/tags. See --tags in <a 1706 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1707 <td>false</td> 1708 <td>No</td> 1709 </tr> 1710 <tr> 1711 <td>quiet</td> 1712 <td>Boolean</td> 1713 <td>Quiet, suppress feedback messages. See --quiet in <a 1714 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1715 <td>false</td> 1716 <td>No</td> 1717 </tr> 1718 <tr> 1719 <td>force</td> 1720 <td>Boolean</td> 1721 <td>Force update. See --force in <a 1722 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td> 1723 <td>false</td> 1724 <td>No</td> 1725 </tr> 1726 </tbody> 1727 </table> 1728 <h3>Example</h3> 1729 <pre> 1601 <h2> 1602 <a name="GitPushTask"></a>GitPushTask </h2> 1603 <p> Update remote refs along with associated objects. See official <a 1604 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1605 >documentation</a>. </p> 1606 <h3>Attributes</h3> 1607 <table> 1608 <thead> 1609 <tr> 1610 <th>Name</th> 1611 <th>Type</th> 1612 <th>Description</th> 1613 <th>Default</th> 1614 <th>Required</th> 1615 </tr> 1616 </thead> 1617 <tbody> 1618 <tr> 1619 <td>gitPath</td> 1620 <td>String</td> 1621 <td>Path to Git binary</td> 1622 <td>/usr/bin/git</td> 1623 <td>No</td> 1624 </tr> 1625 <tr> 1626 <td>repository</td> 1627 <td>String</td> 1628 <td>Path to Git repository</td> 1629 <td>n/a</td> 1630 <td>Yes</td> 1631 </tr> 1632 <tr> 1633 <td>all</td> 1634 <td>Boolean</td> 1635 <td>Push all references</td> 1636 <td>false</td> 1637 <td>No</td> 1638 </tr> 1639 <tr> 1640 <td>destination</td> 1641 <td>String</td> 1642 <td>The "remote" repository that is destination of a push operation. See 1643 <repository> in <a 1644 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1645 >git-push</a>.</td> 1646 <td>origin</td> 1647 <td>Yes, if allRemotes set to false</td> 1648 </tr> 1649 <tr> 1650 <td>refspec</td> 1651 <td>String</td> 1652 <td>See <refspec> in <a 1653 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1654 >git-push</a>.</td> 1655 <td>n/a</td> 1656 <td>No</td> 1657 </tr> 1658 <tr> 1659 <td>mirror</td> 1660 <td>Boolean</td> 1661 <td>See --mirror in <a 1662 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1663 >git-push</a>.</td> 1664 <td>false</td> 1665 <td>No</td> 1666 </tr> 1667 <tr> 1668 <td>delete</td> 1669 <td>Boolean</td> 1670 <td>Delete "remote" reference. Same as prefixing the refspec with colon. See 1671 --delete in <a 1672 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1673 >git-push</a>.</td> 1674 <td>false</td> 1675 <td>No</td> 1676 </tr> 1677 <tr> 1678 <td>tags</td> 1679 <td>Boolean</td> 1680 <td>Push all references under refs/tags. See --tags in <a 1681 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1682 >git-push</a>.</td> 1683 <td>false</td> 1684 <td>No</td> 1685 </tr> 1686 <tr> 1687 <td>quiet</td> 1688 <td>Boolean</td> 1689 <td>Quiet, suppress feedback messages. See --quiet in <a 1690 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1691 >git-push</a>.</td> 1692 <td>false</td> 1693 <td>No</td> 1694 </tr> 1695 <tr> 1696 <td>force</td> 1697 <td>Boolean</td> 1698 <td>Force update. See --force in <a 1699 href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" 1700 >git-push</a>.</td> 1701 <td>false</td> 1702 <td>No</td> 1703 </tr> 1704 </tbody> 1705 </table> 1706 <h3>Example</h3> 1707 <pre> 1730 1708 <property name="repo.dir" value="./relative/path/to/repo" /> 1731 1709 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1752 1730 refspec="newbranch" quiet="true" /> 1753 1731 </pre> 1754 1755 <h2> 1756 <a name="GitTagTask"></a>GitTagTask 1757 </h2> 1758 <p> 1759 Create, list, delete or verify a tag object signed with GPG. See 1760 official <a 1761 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">documentation</a>. 1762 </p> 1763 <h3>Attributes</h3> 1764 <table> 1765 <thead> 1766 <tr> 1767 <th>Name</th> 1768 <th>Type</th> 1769 <th>Description</th> 1770 <th>Default</th> 1771 <th>Required</th> 1772 </tr> 1773 </thead> 1774 <tbody> 1775 <tr> 1776 <td>gitPath</td> 1777 <td>String</td> 1778 <td>Path to Git binary</td> 1779 <td>/usr/bin/git</td> 1780 <td>No</td> 1781 </tr> 1782 <tr> 1783 <td>repository</td> 1784 <td>String</td> 1785 <td>Path to Git repository</td> 1786 <td>n/a</td> 1787 <td>Yes</td> 1788 </tr> 1789 <tr> 1790 <td>message</td> 1791 <td>String</td> 1792 <td>Use given tag message. See -m of <a 1793 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1794 </td> 1795 <td>n/a</td> 1796 <td>No</td> 1797 </tr> 1798 <tr> 1799 <td>name</td> 1800 <td>String</td> 1801 <td>Tag name</td> 1802 <td>n/a</td> 1803 <td>Yes</td> 1804 </tr> 1805 <tr> 1806 <td>commit</td> 1807 <td>String</td> 1808 <td><commit> argument to git-tag</td> 1809 <td>n/a</td> 1810 <td>No</td> 1811 </tr> 1812 <tr> 1813 <td>object</td> 1814 <td>String</td> 1815 <td><object> argument to git-tag</td> 1816 <td>n/a</td> 1817 <td>No</td> 1818 </tr> 1819 <tr> 1820 <td>pattern</td> 1821 <td>String</td> 1822 <td><pattern> argument to git-tag</td> 1823 <td>n/a</td> 1824 <td>No</td> 1825 </tr> 1826 <tr> 1827 <td>outputProperty</td> 1828 <td>String</td> 1829 <td>Property name to set with output value from git-tag</td> 1830 <td>n/a</td> 1831 <td>No</td> 1832 </tr> 1833 <tr> 1834 <td>file</td> 1835 <td>String</td> 1836 <td>Take tag message from given file. See -F of <a 1837 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1838 </td> 1839 <td>n/a</td> 1840 <td>No</td> 1841 </tr> 1842 <tr> 1843 <td>annotate</td> 1844 <td>Boolean</td> 1845 <td>Make unsigned, annotated tag object. See -a of <a 1846 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1847 </td> 1848 <td>false</td> 1849 <td>No</td> 1850 </tr> 1851 <tr> 1852 <td>force</td> 1853 <td>Boolean</td> 1854 <td>Replace existing tag with given name. See -f of <a 1855 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1856 </td> 1857 <td>false</td> 1858 <td>No</td> 1859 </tr> 1860 <tr> 1861 <td>delete</td> 1862 <td>Boolean</td> 1863 <td>Delete existing tags with given names. See -d of <a 1864 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1865 </td> 1866 <td>false</td> 1867 <td>No</td> 1868 </tr> 1869 <tr> 1870 <td>list</td> 1871 <td>Boolean</td> 1872 <td>List tags with names matching given pattern. See -l of <a 1873 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1874 </td> 1875 <td>false</td> 1876 <td>No</td> 1877 </tr> 1878 <tr> 1879 <td>num</td> 1880 <td>Integer</td> 1881 <td>Specifies how many lines from the annotation, if any, are 1882 printed when using -l. See -n of <a 1883 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1884 </td> 1885 <td>n/a</td> 1886 <td>No</td> 1887 </tr> 1888 <tr> 1889 <td>contains</td> 1890 <td>String</td> 1891 <td>Only list tags containing specified commit. See --contains 1892 of <a 1893 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1894 </td> 1895 <td>n/a</td> 1896 <td>No</td> 1897 </tr> 1898 <tr> 1899 <td>sign</td> 1900 <td>Boolean</td> 1901 <td>Make GPG-signed tag. See -a of <a 1902 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1903 </td> 1904 <td>false</td> 1905 <td>No</td> 1906 </tr> 1907 <tr> 1908 <td>keySign</td> 1909 <td>String</td> 1910 <td>Make GPG-signed tag, using given key. See -u of git-tag of 1911 <a 1912 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1913 </td> 1914 <td>n/a</td> 1915 <td>No</td> 1916 </tr> 1917 <tr> 1918 <td>verify</td> 1919 <td>Boolean</td> 1920 <td>Verify GPG signature of given tag names. See -v of <a 1921 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a> 1922 </td> 1923 <td>false</td> 1924 <td>No</td> 1925 </tr> 1926 </tbody> 1927 </table> 1928 <h3>Example</h3> 1929 <pre> 1732 <h2> 1733 <a name="GitTagTask"></a>GitTagTask </h2> 1734 <p> Create, list, delete or verify a tag object signed with GPG. See official <a 1735 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1736 >documentation</a>. </p> 1737 <h3>Attributes</h3> 1738 <table> 1739 <thead> 1740 <tr> 1741 <th>Name</th> 1742 <th>Type</th> 1743 <th>Description</th> 1744 <th>Default</th> 1745 <th>Required</th> 1746 </tr> 1747 </thead> 1748 <tbody> 1749 <tr> 1750 <td>gitPath</td> 1751 <td>String</td> 1752 <td>Path to Git binary</td> 1753 <td>/usr/bin/git</td> 1754 <td>No</td> 1755 </tr> 1756 <tr> 1757 <td>repository</td> 1758 <td>String</td> 1759 <td>Path to Git repository</td> 1760 <td>n/a</td> 1761 <td>Yes</td> 1762 </tr> 1763 <tr> 1764 <td>message</td> 1765 <td>String</td> 1766 <td>Use given tag message. See -m of <a 1767 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1768 >git-tag</a> 1769 </td> 1770 <td>n/a</td> 1771 <td>No</td> 1772 </tr> 1773 <tr> 1774 <td>name</td> 1775 <td>String</td> 1776 <td>Tag name</td> 1777 <td>n/a</td> 1778 <td>Yes</td> 1779 </tr> 1780 <tr> 1781 <td>commit</td> 1782 <td>String</td> 1783 <td><commit> argument to git-tag</td> 1784 <td>n/a</td> 1785 <td>No</td> 1786 </tr> 1787 <tr> 1788 <td>object</td> 1789 <td>String</td> 1790 <td><object> argument to git-tag</td> 1791 <td>n/a</td> 1792 <td>No</td> 1793 </tr> 1794 <tr> 1795 <td>pattern</td> 1796 <td>String</td> 1797 <td><pattern> argument to git-tag</td> 1798 <td>n/a</td> 1799 <td>No</td> 1800 </tr> 1801 <tr> 1802 <td>outputProperty</td> 1803 <td>String</td> 1804 <td>Property name to set with output value from git-tag</td> 1805 <td>n/a</td> 1806 <td>No</td> 1807 </tr> 1808 <tr> 1809 <td>file</td> 1810 <td>String</td> 1811 <td>Take tag message from given file. See -F of <a 1812 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1813 >git-tag</a> 1814 </td> 1815 <td>n/a</td> 1816 <td>No</td> 1817 </tr> 1818 <tr> 1819 <td>annotate</td> 1820 <td>Boolean</td> 1821 <td>Make unsigned, annotated tag object. See -a of <a 1822 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1823 >git-tag</a> 1824 </td> 1825 <td>false</td> 1826 <td>No</td> 1827 </tr> 1828 <tr> 1829 <td>force</td> 1830 <td>Boolean</td> 1831 <td>Replace existing tag with given name. See -f of <a 1832 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1833 >git-tag</a> 1834 </td> 1835 <td>false</td> 1836 <td>No</td> 1837 </tr> 1838 <tr> 1839 <td>delete</td> 1840 <td>Boolean</td> 1841 <td>Delete existing tags with given names. See -d of <a 1842 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1843 >git-tag</a> 1844 </td> 1845 <td>false</td> 1846 <td>No</td> 1847 </tr> 1848 <tr> 1849 <td>list</td> 1850 <td>Boolean</td> 1851 <td>List tags with names matching given pattern. See -l of <a 1852 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1853 >git-tag</a> 1854 </td> 1855 <td>false</td> 1856 <td>No</td> 1857 </tr> 1858 <tr> 1859 <td>num</td> 1860 <td>Integer</td> 1861 <td>Specifies how many lines from the annotation, if any, are printed when using 1862 -l. See -n of <a 1863 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1864 >git-tag</a> 1865 </td> 1866 <td>n/a</td> 1867 <td>No</td> 1868 </tr> 1869 <tr> 1870 <td>contains</td> 1871 <td>String</td> 1872 <td>Only list tags containing specified commit. See --contains of <a 1873 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1874 >git-tag</a> 1875 </td> 1876 <td>n/a</td> 1877 <td>No</td> 1878 </tr> 1879 <tr> 1880 <td>sign</td> 1881 <td>Boolean</td> 1882 <td>Make GPG-signed tag. See -a of <a 1883 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1884 >git-tag</a> 1885 </td> 1886 <td>false</td> 1887 <td>No</td> 1888 </tr> 1889 <tr> 1890 <td>keySign</td> 1891 <td>String</td> 1892 <td>Make GPG-signed tag, using given key. See -u of git-tag of <a 1893 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1894 >git-tag</a> 1895 </td> 1896 <td>n/a</td> 1897 <td>No</td> 1898 </tr> 1899 <tr> 1900 <td>verify</td> 1901 <td>Boolean</td> 1902 <td>Verify GPG signature of given tag names. See -v of <a 1903 href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html" 1904 >git-tag</a> 1905 </td> 1906 <td>false</td> 1907 <td>No</td> 1908 </tr> 1909 </tbody> 1910 </table> 1911 <h3>Example</h3> 1912 <pre> 1930 1913 <property name="repo.dir" value="./relative/path/to/repo" /> 1931 1914 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 1956 1939 pattern="marked" /> 1957 1940 </pre> 1958 1959 <h2> 1960 <a name="GitLogTask"></a>GitLogTask 1961 </h2> 1962 <p> 1963 Show commit logs. See official <a 1964 href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html">documentation</a>. 1965 </p> 1966 <h3>Attributes</h3> 1967 <table> 1968 <thead> 1969 <tr> 1970 <th>Name</th> 1971 <th>Type</th> 1972 <th>Description</th> 1973 <th>Default</th> 1974 <th>Required</th> 1975 </tr> 1976 </thead> 1977 <tbody> 1978 <tr> 1979 <td>gitPath</td> 1980 <td>String</td> 1981 <td>Path to Git binary</td> 1982 <td>/usr/bin/git</td> 1983 <td>No</td> 1984 </tr> 1985 <tr> 1986 <td>repository</td> 1987 <td>String</td> 1988 <td>Path to Git repository</td> 1989 <td>n/a</td> 1990 <td>Yes</td> 1991 </tr> 1992 <tr> 1993 <td>paths</td> 1994 <td>String</td> 1995 <td><path> arguments to git-log. Accepts one or more 1996 paths delimited by PATH_SEPARATOR</td> 1997 <td>n/a</td> 1998 <td>No</td> 1999 </tr> 2000 <tr> 2001 <td>outputProperty</td> 2002 <td>String</td> 2003 <td>Property name to set with output value from git-log</td> 2004 <td>n/a</td> 2005 <td>No</td> 2006 </tr> 2007 <tr> 2008 <td>format</td> 2009 <td>String</td> 2010 <td>Commit format. See --format of git-log. Can be one of <i>oneline</i>, 2011 <i>short</i>, <i>medium</i>, <i>full</i>, <i>fuller</i>, <i>email</i>, 2012 <i>raw</i> and <i>format:<string></i></td> 2013 <td>medium</td> 2014 <td>No</td> 2015 </tr> 2016 <tr> 2017 <td>date</td> 2018 <td>String</td> 2019 <td>Date format. See --date of git-log.</td> 2020 <td>n/a</td> 2021 <td>No</td> 2022 </tr> 2023 <tr> 2024 <td>since</td> 2025 <td>String</td> 2026 <td><since> argument to git-log.</td> 2027 <td>n/a</td> 2028 <td>No</td> 2029 </tr> 2030 <tr> 2031 <td>until</td> 2032 <td>String</td> 2033 <td><until> argument to git-log.</td> 2034 <td>HEAD</td> 2035 <td>No</td> 2036 </tr> 2037 <tr> 2038 <td>stat</td> 2039 <td>String</td> 2040 <td>Generate a diffstat. See --stat of git-log</td> 2041 <td>n/a</td> 2042 <td>No</td> 2043 </tr> 2044 <tr> 2045 <td>nameStatus</td> 2046 <td>Boolean</td> 2047 <td>Names + status of changed files. See --name-status of 2048 git-log.</td> 2049 <td>false</td> 2050 <td>No</td> 2051 </tr> 2052 <tr> 2053 <td>maxCount</td> 2054 <td>Integer</td> 2055 <td>Number of commits to show. See -<n>|-n|--max-count of 2056 git-log.</td> 2057 <td>n/a</td> 2058 <td>No</td> 2059 </tr> 2060 <tr> 2061 <td>noMerges</td> 2062 <td>boolean</td> 2063 <td>Don't show commits with more than one parent. See 2064 --no-merges of git-log.</td> 2065 <td>false</td> 2066 <td>No</td> 2067 </tr> 2068 </tbody> 2069 </table> 2070 <h3>Example</h3> 2071 <pre> 1941 <h2> 1942 <a name="GitLogTask"></a>GitLogTask </h2> 1943 <p> Show commit logs. See official <a 1944 href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html" 1945 >documentation</a>. </p> 1946 <h3>Attributes</h3> 1947 <table> 1948 <thead> 1949 <tr> 1950 <th>Name</th> 1951 <th>Type</th> 1952 <th>Description</th> 1953 <th>Default</th> 1954 <th>Required</th> 1955 </tr> 1956 </thead> 1957 <tbody> 1958 <tr> 1959 <td>gitPath</td> 1960 <td>String</td> 1961 <td>Path to Git binary</td> 1962 <td>/usr/bin/git</td> 1963 <td>No</td> 1964 </tr> 1965 <tr> 1966 <td>repository</td> 1967 <td>String</td> 1968 <td>Path to Git repository</td> 1969 <td>n/a</td> 1970 <td>Yes</td> 1971 </tr> 1972 <tr> 1973 <td>paths</td> 1974 <td>String</td> 1975 <td><path> arguments to git-log. Accepts one or more paths delimited by 1976 PATH_SEPARATOR</td> 1977 <td>n/a</td> 1978 <td>No</td> 1979 </tr> 1980 <tr> 1981 <td>outputProperty</td> 1982 <td>String</td> 1983 <td>Property name to set with output value from git-log</td> 1984 <td>n/a</td> 1985 <td>No</td> 1986 </tr> 1987 <tr> 1988 <td>format</td> 1989 <td>String</td> 1990 <td>Commit format. See --format of git-log. Can be one of <i>oneline</i>, 1991 <i>short</i>, <i>medium</i>, <i>full</i>, <i>fuller</i>, <i>email</i>, 1992 <i>raw</i> and <i>format:<string></i></td> 1993 <td>medium</td> 1994 <td>No</td> 1995 </tr> 1996 <tr> 1997 <td>date</td> 1998 <td>String</td> 1999 <td>Date format. See --date of git-log.</td> 2000 <td>n/a</td> 2001 <td>No</td> 2002 </tr> 2003 <tr> 2004 <td>since</td> 2005 <td>String</td> 2006 <td><since> argument to git-log.</td> 2007 <td>n/a</td> 2008 <td>No</td> 2009 </tr> 2010 <tr> 2011 <td>until</td> 2012 <td>String</td> 2013 <td><until> argument to git-log.</td> 2014 <td>HEAD</td> 2015 <td>No</td> 2016 </tr> 2017 <tr> 2018 <td>stat</td> 2019 <td>String</td> 2020 <td>Generate a diffstat. See --stat of git-log</td> 2021 <td>n/a</td> 2022 <td>No</td> 2023 </tr> 2024 <tr> 2025 <td>nameStatus</td> 2026 <td>Boolean</td> 2027 <td>Names + status of changed files. See --name-status of git-log.</td> 2028 <td>false</td> 2029 <td>No</td> 2030 </tr> 2031 <tr> 2032 <td>maxCount</td> 2033 <td>Integer</td> 2034 <td>Number of commits to show. See -<n>|-n|--max-count of git-log.</td> 2035 <td>n/a</td> 2036 <td>No</td> 2037 </tr> 2038 <tr> 2039 <td>noMerges</td> 2040 <td>boolean</td> 2041 <td>Don't show commits with more than one parent. See --no-merges of 2042 git-log.</td> 2043 <td>false</td> 2044 <td>No</td> 2045 </tr> 2046 </tbody> 2047 </table> 2048 <h3>Example</h3> 2049 <pre> 2072 2050 <property name="repo.dir" value="./relative/path/to/repo" /> 2073 2051 <resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /> … … 2089 2067 repository="${repo.dir.resolved}" /> 2090 2068 </pre> 2091 2092 <h2> 2093 <a name="HttpGetTask"></a>HttpGetTask 2094 </h2> 2095 <p>This task will download a file through HTTP GET and save it to a 2096 specified directory. You need an installed version of HTTP_Request2 to 2097 use this task.</p> 2098 <h3>Attributes</h3> 2099 <table> 2100 <thead> 2101 <tr> 2102 <th>Name</th> 2103 <th>Type</th> 2104 <th>Description</th> 2105 <th>Default</th> 2106 <th>Required</th> 2107 </tr> 2108 </thead> 2109 <tbody> 2110 <tr> 2111 <td>url</td> 2112 <td>String</td> 2113 <td>The request URL</td> 2114 <td>n/a</td> 2115 <td>Yes</td> 2116 </tr> 2117 <tr> 2118 <td>dir</td> 2119 <td>String</td> 2120 <td>The directory to save the file</td> 2121 <td>n/a</td> 2122 <td>Yes</td> 2123 </tr> 2124 <tr> 2125 <td>filename</td> 2126 <td>String</td> 2127 <td>The filename for the downloaded file</td> 2128 <td>The filename part of the URL</td> 2129 <td>No</td> 2130 </tr> 2131 <tr> 2132 <td>proxy</td> 2133 <td>String</td> 2134 <td>The proxy to use, such as <em>http://user:password@hostname:port/</em></td> 2135 <td>n/a</td> 2136 <td>No</td> 2137 </tr> 2138 </tbody> 2139 </table> 2140 <h3>Example</h3> 2141 <pre> 2069 <h2> 2070 <a name="HttpGetTask"></a>HttpGetTask </h2> 2071 <p>This task will download a file through HTTP GET and save it to a specified directory. You 2072 need an installed version of HTTP_Request2 to use this task.</p> 2073 <h3>Attributes</h3> 2074 <table> 2075 <thead> 2076 <tr> 2077 <th>Name</th> 2078 <th>Type</th> 2079 <th>Description</th> 2080 <th>Default</th> 2081 <th>Required</th> 2082 </tr> 2083 </thead> 2084 <tbody> 2085 <tr> 2086 <td>url</td> 2087 <td>String</td> 2088 <td>The request URL</td> 2089 <td>n/a</td> 2090 <td>Yes</td> 2091 </tr> 2092 <tr> 2093 <td>dir</td> 2094 <td>String</td> 2095 <td>The directory to save the file</td> 2096 <td>n/a</td> 2097 <td>Yes</td> 2098 </tr> 2099 <tr> 2100 <td>filename</td> 2101 <td>String</td> 2102 <td>The filename for the downloaded file</td> 2103 <td>The filename part of the URL</td> 2104 <td>No</td> 2105 </tr> 2106 </tbody> 2107 </table> 2108 <h3>Example</h3> 2109 <pre> 2142 2110 <httpget url="http://buildserver.com/builds/latest.stable.tar.bz2" dir="/usr/local/lib"/> 2143 2111 </pre> 2144 2145 <h2> 2146 <a name="HttpRequestTask"></a>HttpRequestTask 2147 </h2> 2148 <p>This task will make an HTTP request to the provided URL and 2149 match the response against the provided regular expression. If an 2150 regular expression is provided and doesn't match the build will fail. 2151 You need an installed version of HTTP_Request2 to use this task.</p> 2152 <h3>Attributes</h3> 2153 <table> 2154 <thead> 2155 <tr> 2156 <th>Name</th> 2157 <th>Type</th> 2158 <th>Description</th> 2159 <th>Default</th> 2160 <th>Required</th> 2161 </tr> 2162 </thead> 2163 <tbody> 2164 <tr> 2165 <td>url</td> 2166 <td>String</td> 2167 <td>The request URL</td> 2168 <td>n/a</td> 2169 <td>Yes</td> 2170 </tr> 2171 <tr> 2172 <td>responseRegex</td> 2173 <td>String</td> 2174 <td>The regular expression for matching the response</td> 2175 <td>n/a</td> 2176 <td>No</td> 2177 </tr> 2178 <tr> 2179 <td>authUser</td> 2180 <td>String</td> 2181 <td>The authentication user name</td> 2182 <td>n/a</td> 2183 <td>No</td> 2184 </tr> 2185 <tr> 2186 <td>authPassword</td> 2187 <td>String</td> 2188 <td>The authentication password</td> 2189 <td>n/a</td> 2190 <td>No</td> 2191 </tr> 2192 <tr> 2193 <td>authScheme</td> 2194 <td>String</td> 2195 <td>The authentication scheme</td> 2196 <td>basic</td> 2197 <td>No</td> 2198 </tr> 2199 <tr> 2200 <td>verbose</td> 2201 <td>Boolean</td> 2202 <td>Whether to enable detailed logging</td> 2203 <td>false</td> 2204 <td>No</td> 2205 </tr> 2206 <tr> 2207 <td>observerEvents</td> 2208 <td>String</td> 2209 <td>Comma-separated list of events to log when <em>verbose</em> 2210 is set to <em>true</em></td> 2211 <td>connect, sentHeaders, sentBodyPart, receivedHeaders, 2212 receivedBody, disconnect</td> 2213 <td>No</td> 2214 </tr> 2215 </tbody> 2216 </table> 2217 <h3>Supported Nested Tags</h3> 2218 <ul> 2219 <li>config 2220 <p>Holds additional config data. See HTTP_Request2 for supported 2221 values.</p> 2222 <h3>Attributes</h3> 2223 <table> 2224 <thead> 2225 <tr> 2226 <th>Name</th> 2227 <th>Type</th> 2228 <th>Description</th> 2229 <th>Default</th> 2230 <th>Required</th> 2231 </tr> 2232 </thead> 2233 <tbody> 2234 <tr> 2235 <td>name</td> 2236 <td>String</td> 2237 <td>Config parameter name</td> 2238 <td>n/a</td> 2239 <td>Yes</td> 2240 </tr> 2241 <tr> 2242 <td>value</td> 2243 <td>Mixed</td> 2244 <td>Config value</td> 2245 <td>n/a</td> 2246 <td>Yes</td> 2247 </tr> 2248 </tbody> 2249 </table></li> 2250 <li>header 2251 <p> 2252 Holds additional header <em>name</em> and <em>value</em>. 2253 </p> 2254 <h3>Attributes</h3> 2255 <table> 2256 <thead> 2257 <tr> 2258 <th>Name</th> 2259 <th>Type</th> 2260 <th>Description</th> 2261 <th>Default</th> 2262 <th>Required</th> 2263 </tr> 2264 </thead> 2265 <tbody> 2266 <tr> 2267 <td>name</td> 2268 <td>String</td> 2269 <td>Header name</td> 2270 <td>n/a</td> 2271 <td>Yes</td> 2272 </tr> 2273 <tr> 2274 <td>value</td> 2275 <td>String</td> 2276 <td>Header value</td> 2277 <td>n/a</td> 2278 <td>Yes</td> 2279 </tr> 2280 </tbody> 2281 </table></li> 2282 </ul> 2283 <h3>Examples</h3> 2284 <pre> 2112 <h2> 2113 <a name="HttpRequestTask"></a>HttpRequestTask </h2> 2114 <p>This task will make an HTTP request to the provided URL and match the response against 2115 the provided regular expression. If an regular expression is provided and doesn't match 2116 the build will fail. You need an installed version of HTTP_Request2 to use this 2117 task.</p> 2118 <h3>Attributes</h3> 2119 <table> 2120 <thead> 2121 <tr> 2122 <th>Name</th> 2123 <th>Type</th> 2124 <th>Description</th> 2125 <th>Default</th> 2126 <th>Required</th> 2127 </tr> 2128 </thead> 2129 <tbody> 2130 <tr> 2131 <td>url</td> 2132 <td>String</td> 2133 <td>The request URL</td> 2134 <td>n/a</td> 2135 <td>Yes</td> 2136 </tr> 2137 <tr> 2138 <td>responseRegex</td> 2139 <td>String</td> 2140 <td>The regular expression for matching the response</td> 2141 <td>n/a</td> 2142 <td>No</td> 2143 </tr> 2144 <tr> 2145 <td>authUser</td> 2146 <td>String</td> 2147 <td>The authentication user name</td> 2148 <td>n/a</td> 2149 <td>No</td> 2150 </tr> 2151 <tr> 2152 <td>authPassword</td> 2153 <td>String</td> 2154 <td>The authentication password</td> 2155 <td>n/a</td> 2156 <td>No</td> 2157 </tr> 2158 <tr> 2159 <td>authScheme</td> 2160 <td>String</td> 2161 <td>The authentication scheme</td> 2162 <td>basic</td> 2163 <td>No</td> 2164 </tr> 2165 <tr> 2166 <td>verbose</td> 2167 <td>Boolean</td> 2168 <td>Whether to enable detailed logging</td> 2169 <td>false</td> 2170 <td>No</td> 2171 </tr> 2172 <tr> 2173 <td>observerEvents</td> 2174 <td>String</td> 2175 <td>Comma-separated list of events to log when <em>verbose</em> is set to 2176 <em>true</em></td> 2177 <td>connect, sentHeaders, sentBodyPart, receivedHeaders, receivedBody, 2178 disconnect</td> 2179 <td>No</td> 2180 </tr> 2181 </tbody> 2182 </table> 2183 <h3>Supported Nested Tags</h3> 2184 <ul> 2185 <li>config <p>Holds additional config data. See HTTP_Request2 for supported values.</p> 2186 <h3>Attributes</h3> 2187 <table> 2188 <thead> 2189 <tr> 2190 <th>Name</th> 2191 <th>Type</th> 2192 <th>Description</th> 2193 <th>Default</th> 2194 <th>Required</th> 2195 </tr> 2196 </thead> 2197 <tbody> 2198 <tr> 2199 <td>name</td> 2200 <td>String</td> 2201 <td>Config parameter name</td> 2202 <td>n/a</td> 2203 <td>Yes</td> 2204 </tr> 2205 <tr> 2206 <td>value</td> 2207 <td>Mixed</td> 2208 <td>Config value</td> 2209 <td>n/a</td> 2210 <td>Yes</td> 2211 </tr> 2212 </tbody> 2213 </table></li> 2214 <li>header <p> Holds additional header <em>name</em> and <em>value</em>. </p> 2215 <h3>Attributes</h3> 2216 <table> 2217 <thead> 2218 <tr> 2219 <th>Name</th> 2220 <th>Type</th> 2221 <th>Description</th> 2222 <th>Default</th> 2223 <th>Required</th> 2224 </tr> 2225 </thead> 2226 <tbody> 2227 <tr> 2228 <td>name</td> 2229 <td>String</td> 2230 <td>Header name</td> 2231 <td>n/a</td> 2232 <td>Yes</td> 2233 </tr> 2234 <tr> 2235 <td>value</td> 2236 <td>String</td> 2237 <td>Header value</td> 2238 <td>n/a</td> 2239 <td>Yes</td> 2240 </tr> 2241 </tbody> 2242 </table></li> 2243 </ul> 2244 <h3>Examples</h3> 2245 <pre> 2285 2246 <http-request url="http://my-production.example.com/check-deployment.php"/> 2286 2247 </pre> 2287 <p>Just perform a HTTP request to the given URL.</p>2288 <pre>2248 <p>Just perform a HTTP request to the given URL.</p> 2249 <pre> 2289 2250 <http-request 2290 2251 url="http://my-production.example.com/check-deployment.php" … … 2293 2254 observerEvents="connect, disconnect"/> 2294 2255 </pre> 2295 <p>Perform a HTTP request to the given URL and matching the 2296 response against the given regex pattern. Enable detailed logging and 2297 log only the specified events.</p> 2298 <pre> 2256 <p>Perform a HTTP request to the given URL and matching the response against the given regex 2257 pattern. Enable detailed logging and log only the specified events.</p> 2258 <pre> 2299 2259 <http-request url="http://my-production.example.com/check-deployment.php"> 2300 2260 <config name="adapter" value="HTTP_Request2_Adapter_Curl"/> … … 2302 2262 </http-request> 2303 2263 </pre> 2304 <p>Perform a HTTP request to the given URL. Setting request adapter 2305 to curl instead of socket. Setting an additional header.</p> 2306 2307 <h2> 2308 <a name="IoncubeEncoderTask"></a>IoncubeEncoderTask 2309 </h2> 2310 <p> 2311 The <em>IoncubeEncoderTask</em> executes the <a 2312 href="http://www.ioncube.com" target="_blank">ionCube</a> encoder 2313 (for either PHP4 or PHP5 projects). 2314 </p> 2315 <p> 2316 For more information on the meaning of the various options please 2317 consult the ionCube <a href="http://www.ioncube.com/USER-GUIDE.pdf" 2318 target="_blank">user guide</a>. 2319 </p> 2320 <h3>Example</h3> 2321 <pre><ioncubeencoder 2264 <p>Perform a HTTP request to the given URL. Setting request adapter to curl instead of 2265 socket. Setting an additional header.</p> 2266 <h2> 2267 <a name="IoncubeEncoderTask"></a>IoncubeEncoderTask </h2> 2268 <p> The <em>IoncubeEncoderTask</em> executes the <a href="http://www.ioncube.com" 2269 target="_blank">ionCube</a> encoder (for either PHP4 or PHP5 projects). </p> 2270 <p> For more information on the meaning of the various options please consult the ionCube <a 2271 href="http://www.ioncube.com/USER-GUIDE.pdf" target="_blank">user guide</a>. </p> 2272 <h3>Example</h3> 2273 <pre><ioncubeencoder 2322 2274 binary="true" 2323 2275 copy="*.ini config/*" … … 2341 2293 </ioncubeencoder> 2342 2294 </pre> 2343 <h3>Attributes</h3> 2344 <table> 2345 <thead> 2346 <tr> 2347 <th>Name</th> 2348 <th>Type</th> 2349 <th>Description</th> 2350 <th>Default</th> 2351 <th>Required</th> 2352 </tr> 2353 </thead> 2354 <tbody> 2355 <tr> 2356 <td>allowedserver</td> 2357 <td>String</td> 2358 <td>Restricts the encoded files to particular servers and/or 2359 domains. Consult the IonCude documentation for more information.</td> 2360 <td>none</td> 2361 <td>No</td> 2362 </tr> 2363 <tr> 2364 <td>binary</td> 2365 <td>Boolean</td> 2366 <td>Whether to save encoded files in binary format (default is 2367 ASCII format)</td> 2368 <td>false</td> 2369 <td>No</td> 2370 </tr> 2371 <tr> 2372 <td>copy</td> 2373 <td>String</td> 2374 <td>Specifies files or directories to exclude from being 2375 encoded or encrypted and copy them to the target directory 2376 (separated by space).</td> 2377 <td>none</td> 2378 <td>No</td> 2379 </tr> 2380 <tr> 2381 <td>encode</td> 2382 <td>String</td> 2383 <td>Specifies additional file patterns, files or directories to 2384 encode, or to reverse the effect of <em>copy</em></td> 2385 <td>none</td> 2386 <td>No</td> 2387 </tr> 2388 <tr> 2389 <td>encrypt</td> 2390 <td>String</td> 2391 <td>Specify files or directories (space separated list) that 2392 are to be encrypted.</td> 2393 <td>none</td> 2394 <td>No</td> 2395 </tr> 2396 <tr> 2397 <td>expirein</td> 2398 <td>String</td> 2399 <td>Sets a period in seconds (s), minutes (m), hours (h) or 2400 days (d) after which the files expire. Accepts: <em>500s</em> or <em>55m</em> 2401 or <em>24h</em> or <em>7d</em></td> 2402 <td>none</td> 2403 <td>No</td> 2404 </tr> 2405 <tr> 2406 <td>expireon</td> 2407 <td>String</td> 2408 <td>Sets a YYYY-MM-DD date to expire the files.</td> 2409 <td>none</td> 2410 <td>No</td> 2411 </tr> 2412 <tr> 2413 <td>fromdir</td> 2414 <td>String</td> 2415 <td>Path containing source files</td> 2416 <td>none</td> 2417 <td>Yes</td> 2418 </tr> 2419 <tr> 2420 <td>ignore</td> 2421 <td>String</td> 2422 <td>Set files and directories to ignore entirely and exclude 2423 from the target directory (separated by space).</td> 2424 <td>none</td> 2425 <td>Yes</td> 2426 </tr> 2427 <tr> 2428 <td>ioncubepath</td> 2429 <td>String</td> 2430 <td>Path to the ionCube binaries</td> 2431 <td>/usr/local/ioncube</td> 2432 <td>No</td> 2433 </tr> 2434 <tr> 2435 <td>keep</td> 2436 <td>String</td> 2437 <td>Set files and directories not to be ignored (separated by 2438 space).</td> 2439 <td>none</td> 2440 <td>No</td> 2441 </tr> 2442 <tr> 2443 <td>licensepath</td> 2444 <td>String</td> 2445 <td>Path to the license file that will be used by the encoded 2446 files</td> 2447 <td>none</td> 2448 <td>No</td> 2449 </tr> 2450 <tr> 2451 <td>nodoccomments</td> 2452 <td>String</td> 2453 <td>Omits documents comments ( /** ... */ ) from the encoded 2454 files.</td> 2455 <td>none</td> 2456 <td>No</td> 2457 </tr> 2458 <tr> 2459 <td>obfuscation-key</td> 2460 <td>String</td> 2461 <td>The obfuscation key must be supplied when using the 2462 obfuscate option</td> 2463 <td>none</td> 2464 <td>No</td> 2465 </tr> 2466 <tr> 2467 <td>obfuscate</td> 2468 <td>String</td> 2469 <td>The Encoder can obfuscate the names of global functions, 2470 the names of local variables in global functions, and line numbers. 2471 Use either <em>all</em> or any of <em>functions</em>, <em>locals</em> 2472 or <em>linenos</em> separated by a space.</td> 2473 <td>none</td> 2474 <td>No</td> 2475 </tr> 2476 <tr> 2477 <td>optimize</td> 2478 <td>String</td> 2479 <td>Controls the optimization of the encoded files, accepts 2480 either <em>more</em> or <em>max</em></td> 2481 <td>none</td> 2482 <td>No</td> 2483 </tr> 2484 <tr> 2485 <td>passphrase</td> 2486 <td>String</td> 2487 <td>The passphrase to use when encoding with a license file</td> 2488 <td>none</td> 2489 <td>No</td> 2490 </tr> 2491 <tr> 2492 <td>phpversion</td> 2493 <td>Integer</td> 2494 <td>The PHP version to use</td> 2495 <td>5</td> 2496 <td>No</td> 2497 </tr> 2498 <tr> 2499 <td>targetoption</td> 2500 <td>String</td> 2501 <td>Option to use when target directory exists, accepts <em>replace</em>, 2502 <em>merge</em>, <em>update</em> and <em>rename</em></td> 2503 <td>none</td> 2504 <td>No</td> 2505 </tr> 2506 <tr> 2507 <td>todir</td> 2508 <td>String</td> 2509 <td>Path to save encoded files to</td> 2510 <td>none</td> 2511 <td>Yes</td> 2512 </tr> 2513 <tr> 2514 <td>withoutruntimeloadersupport</td> 2515 <td>Boolean</td> 2516 <td>Whether to disable support for runtime initialization of the 2517 ionCube Loader</td> 2518 <td>false</td> 2519 <td>No</td> 2520 </tr> 2521 <tr> 2522 <td>noshortopentags</td> 2523 <td>Boolean</td> 2524 <td>Whether to disable support for short PHP tags</td> 2525 <td>false</td> 2526 <td>No</td> 2527 </tr> 2528 <tr> 2529 <td>callbackfile</td> 2530 <td>String</td> 2531 <td>Path to callback file (.php)</td> 2532 <td>n/a</td> 2533 <td>No</td> 2534 </tr> 2535 <tr> 2536 <td>obfuscationexclusionsfile</td> 2537 <td>String</td> 2538 <td>Path to obfuscation exclusions file</td> 2539 <td>n/a</td> 2540 <td>No</td> 2541 </tr> 2542 <tr> 2543 <td>ignoredeprecatedwarnings</td> 2544 <td>Boolean</td> 2545 <td>Whether to ignore deprecated warnings</td> 2546 <td>false</td> 2547 <td>No</td> 2548 </tr> 2549 <tr> 2550 <td>ignorestrictwarnings</td> 2551 <td>Boolean</td> 2552 <td>Whether to ignore strict warnings</td> 2553 <td>false</td> 2554 <td>No</td> 2555 </tr> 2556 <tr> 2557 <td>allowencodingintosource</td> 2558 <td>Boolean</td> 2559 <td>Whether to allow encoding into the source tree</td> 2560 <td>false</td> 2561 <td>No</td> 2562 </tr> 2563 <tr> 2564 <td>messageifnoloader</td> 2565 <td>String</td> 2566 <td>A valid PHP expression to customize the "no loader installed" message</td> 2567 <td>n/a</td> 2568 <td>No</td> 2569 </tr> 2570 <tr> 2571 <td>actionifnoloader</td> 2572 <td>String</td> 2573 <td>A valid PHP expression to replace the "no loader installed" action</td> 2574 <td>n/a</td> 2575 <td>No</td> 2576 </tr> 2577 <tr> 2578 <td>showcommandline</td> 2579 <td>Boolean</td> 2580 <td>whether to show command line before it is executed</td> 2581 <td>false</td> 2582 <td>No</td> 2583 </tr> 2584 </tbody> 2585 </table> 2586 <h3>Supported Nested Tags</h3> 2587 <ul> 2588 <li>comment 2589 <p>Custom text that is added to the start of each encoded file.</p></li> 2590 </ul> 2591 <h2> 2592 <a name="IoncubeLicenseTask"></a>IoncubeLicenseTask 2593 </h2> 2594 <p> 2595 The <em>IoncubeLicenseTask</em> executes the <a 2596 href="http://www.ioncube.com" target="_blank">ionCube</a> 2597 make_license program. 2598 </p> 2599 <p> 2600 For more information on the meaning of the various options please 2601 consult the ionCube <a href="http://www.ioncube.com/USER-GUIDE.pdf" 2602 target="_blank">user guide</a>. 2603 </p> 2604 <h3>Example</h3> 2605 <pre><ioncubelicense 2295 <h3>Attributes</h3> 2296 <table> 2297 <thead> 2298 <tr> 2299 <th>Name</th> 2300 <th>Type</th> 2301 <th>Description</th> 2302 <th>Default</th> 2303 <th>Required</th> 2304 </tr> 2305 </thead> 2306 <tbody> 2307 <tr> 2308 <td>allowedserver</td> 2309 <td>String</td> 2310 <td>Restricts the encoded files to particular servers and/or domains. Consult 2311 the IonCude documentation for more information.</td> 2312 <td>none</td> 2313 <td>No</td> 2314 </tr> 2315 <tr> 2316 <td>binary</td> 2317 <td>Boolean</td> 2318 <td>Whether to save encoded files in binary format (default is ASCII 2319 format)</td> 2320 <td>false</td> 2321 <td>No</td> 2322 </tr> 2323 <tr> 2324 <td>copy</td> 2325 <td>String</td> 2326 <td>Specifies files or directories to exclude from being encoded or encrypted 2327 and copy them to the target directory (separated by space).</td> 2328 <td>none</td> 2329 <td>No</td> 2330 </tr> 2331 <tr> 2332 <td>encode</td> 2333 <td>String</td> 2334 <td>Specifies additional file patterns, files or directories to encode, or to 2335 reverse the effect of <em>copy</em></td> 2336 <td>none</td> 2337 <td>No</td> 2338 </tr> 2339 <tr> 2340 <td>encrypt</td> 2341 <td>String</td> 2342 <td>Specify files or directories (space separated list) that are to be 2343 encrypted.</td> 2344 <td>none</td> 2345 <td>No</td> 2346 </tr> 2347 <tr> 2348 <td>expirein</td> 2349 <td>String</td> 2350 <td>Sets a period in seconds (s), minutes (m), hours (h) or days (d) after which 2351 the files expire. Accepts: <em>500s</em> or <em>55m</em> or <em>24h</em> or 2352 <em>7d</em></td> 2353 <td>none</td> 2354 <td>No</td> 2355 </tr> 2356 <tr> 2357 <td>expireon</td> 2358 <td>String</td> 2359 <td>Sets a YYYY-MM-DD date to expire the files.</td> 2360 <td>none</td> 2361 <td>No</td> 2362 </tr> 2363 <tr> 2364 <td>fromdir</td> 2365 <td>String</td> 2366 <td>Path containing source files</td> 2367 <td>none</td> 2368 <td>Yes</td> 2369 </tr> 2370 <tr> 2371 <td>ignore</td> 2372 <td>String</td> 2373 <td>Set files and directories to ignore entirely and exclude from the target 2374 directory (separated by space).</td> 2375 <td>none</td> 2376 <td>Yes</td> 2377 </tr> 2378 <tr> 2379 <td>ioncubepath</td> 2380 <td>String</td> 2381 <td>Path to the ionCube binaries</td> 2382 <td>/usr/local/ioncube</td> 2383 <td>No</td> 2384 </tr> 2385 <tr> 2386 <td>keep</td> 2387 <td>String</td> 2388 <td>Set files and directories not to be ignored (separated by space).</td> 2389 <td>none</td> 2390 <td>No</td> 2391 </tr> 2392 <tr> 2393 <td>licensepath</td> 2394 <td>String</td> 2395 <td>Path to the license file that will be used by the encoded files</td> 2396 <td>none</td> 2397 <td>No</td> 2398 </tr> 2399 <tr> 2400 <td>nodoccomments</td> 2401 <td>String</td> 2402 <td>Omits documents comments ( /** ... */ ) from the encoded files.</td> 2403 <td>none</td> 2404 <td>No</td> 2405 </tr> 2406 <tr> 2407 <td>obfuscation-key</td> 2408 <td>String</td> 2409 <td>The obfuscation key must be supplied when using the obfuscate option</td> 2410 <td>none</td> 2411 <td>No</td> 2412 </tr> 2413 <tr> 2414 <td>obfuscate</td> 2415 <td>String</td> 2416 <td>The Encoder can obfuscate the names of global functions, the names of local 2417 variables in global functions, and line numbers. Use either <em>all</em> or 2418 any of <em>functions</em>, <em>locals</em> or <em>linenos</em> separated by 2419 a space.</td> 2420 <td>none</td> 2421 <td>No</td> 2422 </tr> 2423 <tr> 2424 <td>optimize</td> 2425 <td>String</td> 2426 <td>Controls the optimization of the encoded files, accepts either <em>more</em> 2427 or <em>max</em></td> 2428 <td>none</td> 2429 <td>No</td> 2430 </tr> 2431 <tr> 2432 <td>passphrase</td> 2433 <td>String</td> 2434 <td>The passphrase to use when encoding with a license file</td> 2435 <td>none</td> 2436 <td>No</td> 2437 </tr> 2438 <tr> 2439 <td>phpversion</td> 2440 <td>Integer</td> 2441 <td>The PHP version to use</td> 2442 <td>5</td> 2443 <td>No</td> 2444 </tr> 2445 <tr> 2446 <td>targetoption</td> 2447 <td>String</td> 2448 <td>Option to use when target directory exists, accepts <em>replace</em>, 2449 <em>merge</em>, <em>update</em> and <em>rename</em></td> 2450 <td>none</td> 2451 <td>No</td> 2452 </tr> 2453 <tr> 2454 <td>todir</td> 2455 <td>String</td> 2456 <td>Path to save encoded files to</td> 2457 <td>none</td> 2458 <td>Yes</td> 2459 </tr> 2460 <tr> 2461 <td>withoutruntimeloadersupport</td> 2462 <td>Boolean</td> 2463 <td>Whether to disable support for runtime initialization of the ionCube 2464 Loader</td> 2465 <td>false</td> 2466 <td>No</td> 2467 </tr> 2468 <tr> 2469 <td>noshortopentags</td> 2470 <td>Boolean</td> 2471 <td>Whether to disable support for short PHP tags</td> 2472 <td>false</td> 2473 <td>No</td> 2474 </tr> 2475 <tr> 2476 <td>callbackfile</td> 2477 <td>String</td> 2478 <td>Path to callback file (.php)</td> 2479 <td>n/a</td> 2480 <td>No</td> 2481 </tr> 2482 <tr> 2483 <td>obfuscationexclusionsfile</td> 2484 <td>String</td> 2485 <td>Path to obfuscation exclusions file</td> 2486 <td>n/a</td> 2487 <td>No</td> 2488 </tr> 2489 <tr> 2490 <td>ignoredeprecatedwarnings</td> 2491 <td>Boolean</td> 2492 <td>Whether to ignore deprecated warnings</td> 2493 <td>false</td> 2494 <td>No</td> 2495 </tr> 2496 <tr> 2497 <td>ignorestrictwarnings</td> 2498 <td>Boolean</td> 2499 <td>Whether to ignore strict warnings</td> 2500 <td>false</td> 2501 <td>No</td> 2502 </tr> 2503 <tr> 2504 <td>allowencodingintosource</td> 2505 <td>Boolean</td> 2506 <td>Whether to allow encoding into the source tree</td> 2507 <td>false</td> 2508 <td>No</td> 2509 </tr> 2510 <tr> 2511 <td>messageifnoloader</td> 2512 <td>String</td> 2513 <td>A valid PHP expression to customize the "no loader installed" message</td> 2514 <td>n/a</td> 2515 <td>No</td> 2516 </tr> 2517 <tr> 2518 <td>actionifnoloader</td> 2519 <td>String</td> 2520 <td>A valid PHP expression to replace the "no loader installed" action</td> 2521 <td>n/a</td> 2522 <td>No</td> 2523 </tr> 2524 <tr> 2525 <td>showcommandline</td> 2526 <td>Boolean</td> 2527 <td>whether to show command line before it is executed</td> 2528 <td>false</td> 2529 <td>No</td> 2530 </tr> 2531 </tbody> 2532 </table> 2533 <h3>Supported Nested Tags</h3> 2534 <ul> 2535 <li>comment <p>Custom text that is added to the start of each encoded file.</p></li> 2536 </ul> 2537 <h2> 2538 <a name="IoncubeLicenseTask"></a>IoncubeLicenseTask </h2> 2539 <p> The <em>IoncubeLicenseTask</em> executes the <a href="http://www.ioncube.com" 2540 target="_blank">ionCube</a> make_license program. </p> 2541 <p> For more information on the meaning of the various options please consult the ionCube <a 2542 href="http://www.ioncube.com/USER-GUIDE.pdf" target="_blank">user guide</a>. </p> 2543 <h3>Example</h3> 2544 <pre><ioncubelicense 2606 2545 ioncubepath="/usr/local/ioncube" 2607 2546 licensepath="mylicense.txt" … … 2613 2552 </ioncubelicense> 2614 2553 </pre> 2615 <h3>Attributes</h3> 2616 <table> 2617 <thead> 2618 <tr> 2619 <th>Name</th> 2620 <th>Type</th> 2621 <th>Description</th> 2622 <th>Default</th> 2623 <th>Required</th> 2624 </tr> 2625 </thead> 2626 <tbody> 2627 <tr> 2628 <td>ioncubepath</td> 2629 <td>String</td> 2630 <td>Path to the ionCube binaries</td> 2631 <td>/usr/local/ioncube</td> 2632 <td>No</td> 2633 </tr> 2634 <tr> 2635 <td>licensepath</td> 2636 <td>String</td> 2637 <td>Path to the license file that will be generated</td> 2638 <td>none</td> 2639 <td>No</td> 2640 </tr> 2641 <tr> 2642 <td>passphrase</td> 2643 <td>String</td> 2644 <td>The passphrase to use when generating the license file</td> 2645 <td>none</td> 2646 <td>No</td> 2647 </tr> 2648 <tr> 2649 <td>allowedserver</td> 2650 <td>String</td> 2651 <td>Restricts the license to particular servers and/or domains. 2652 Consult the IonCude documentation for more information.</td> 2653 <td>none</td> 2654 <td>No</td> 2655 </tr> 2656 <tr> 2657 <td>expirein</td> 2658 <td>String</td> 2659 <td>Sets a period in seconds (s), minutes (m), hours (h) or 2660 days (d) after which the license expires. Accepts: 500s or 55m or 2661 24h or 7d.</td> 2662 <td>none</td> 2663 <td>No</td> 2664 </tr> 2665 <tr> 2666 <td>expireon</td> 2667 <td>String</td> 2668 <td>Sets a YYYY-MM-DD date to expire the license.</td> 2669 <td>none</td> 2670 <td>No</td> 2671 </tr> 2672 </tbody> 2673 </table> 2674 <h3>Supported Nested Tags</h3> 2675 <ul> 2676 <li>comment 2677 <p>Custom text that is added to the start of each encoded file.</p></li> 2678 </ul> 2679 <h2> 2680 <a name="JslLintTask"></a>JslLintTask 2681 </h2> 2682 <p> 2683 The <em>JslLintTask</em> uses the <a 2684 href="http://www.javascriptlint.com" target="_blank">Javascript 2685 Lint</a> program to check the sytax on one or more JavaScript source code 2686 files. 2687 </p> 2688 <p> 2689 <b>NB:</b> the Javascript lint program must be in the system path! 2690 </p> 2691 <h3>Attributes</h3> 2692 <table> 2693 <thead> 2694 <tr> 2695 <th>Name</th> 2696 <th>Type</th> 2697 <th>Description</th> 2698 <th>Default</th> 2699 <th>Required</th> 2700 </tr> 2701 </thead> 2702 <tbody> 2703 <tr> 2704 <td>executable</td> 2705 <td>String</td> 2706 <td>Path to JSL executable</td> 2707 <td>jsl</td> 2708 <td>No</td> 2709 </tr> 2710 <tr> 2711 <td>file</td> 2712 <td>String</td> 2713 <td>Path to source file</td> 2714 <td>n/a</td> 2715 <td>No</td> 2716 </tr> 2717 <tr> 2718 <td>haltonfailure</td> 2719 <td>Boolean</td> 2720 <td>Stop the build process if the linting process encounters an 2721 error.</td> 2722 <td>false</td> 2723 <td>No</td> 2724 </tr> 2725 <tr> 2726 <td>showwarnings</td> 2727 <td>Boolean</td> 2728 <td>Sets the flag if warnings should be shown.</td> 2729 <td>true</td> 2730 <td>No</td> 2731 </tr> 2732 <tr> 2733 <td>cachefile</td> 2734 <td>String</td> 2735 <td>If set, enables writing of last-modified times to <em>cachefile</em>, 2736 to speed up processing of files that rarely change</td> 2737 <td>none</td> 2738 <td>No</td> 2739 </tr> 2740 <tr> 2741 <td>conffile</td> 2742 <td>String</td> 2743 <td>Path to JSL config file</td> 2744 <td>none</td> 2745 <td>No</td> 2746 </tr> 2747 <tr> 2748 <td>tofile</td> 2749 <td>String</td> 2750 <td>File to write list of 'bad files' to.</td> 2751 <td>n/a</td> 2752 <td>No</td> 2753 </tr> 2754 </tbody> 2755 </table> 2756 <h3>Supported Nested Tags</h3> 2757 <ul> 2758 <li>fileset</li> 2759 </ul> 2760 <h3>Example</h3> 2761 <pre> 2554 <h3>Attributes</h3> 2555 <table> 2556 <thead> 2557 <tr> 2558 <th>Name</th> 2559 <th>Type</th> 2560 <th>Description</th> 2561 <th>Default</th> 2562 <th>Required</th> 2563 </tr> 2564 </thead> 2565 <tbody> 2566 <tr> 2567 <td>ioncubepath</td> 2568 <td>String</td> 2569 <td>Path to the ionCube binaries</td> 2570 <td>/usr/local/ioncube</td> 2571 <td>No</td> 2572 </tr> 2573 <tr> 2574 <td>licensepath</td> 2575 <td>String</td> 2576 <td>Path to the license file that will be generated</td> 2577 <td>none</td> 2578 <td>No</td> 2579 </tr> 2580 <tr> 2581 <td>passphrase</td> 2582 <td>String</td> 2583 <td>The passphrase to use when generating the license file</td> 2584 <td>none</td> 2585 <td>No</td> 2586 </tr> 2587 <tr> 2588 <td>allowedserver</td> 2589 <td>String</td> 2590 <td>Restricts the license to particular servers and/or domains. Consult the 2591 IonCude documentation for more information.</td> 2592 <td>none</td> 2593 <td>No</td> 2594 </tr> 2595 <tr> 2596 <td>expirein</td> 2597 <td>String</td> 2598 <td>Sets a period in seconds (s), minutes (m), hours (h) or days (d) after which 2599 the license expires. Accepts: 500s or 55m or 24h or 7d.</td> 2600 <td>none</td> 2601 <td>No</td> 2602 </tr> 2603 <tr> 2604 <td>expireon</td> 2605 <td>String</td> 2606 <td>Sets a YYYY-MM-DD date to expire the license.</td> 2607 <td>none</td> 2608 <td>No</td> 2609 </tr> 2610 </tbody> 2611 </table> 2612 <h3>Supported Nested Tags</h3> 2613 <ul> 2614 <li>comment <p>Custom text that is added to the start of each encoded file.</p></li> 2615 </ul> 2616 <h2> 2617 <a name="JslLintTask"></a>JslLintTask </h2> 2618 <p> The <em>JslLintTask</em> uses the <a href="http://www.javascriptlint.com" 2619 target="_blank">Javascript Lint</a> program to check the sytax on one or more 2620 JavaScript source code files. </p> 2621 <p> 2622 <b>NB:</b> the Javascript lint program must be in the system path! </p> 2623 <h3>Attributes</h3> 2624 <table> 2625 <thead> 2626 <tr> 2627 <th>Name</th> 2628 <th>Type</th> 2629 <th>Description</th> 2630 <th>Default</th> 2631 <th>Required</th> 2632 </tr> 2633 </thead> 2634 <tbody> 2635 <tr> 2636 <td>executable</td> 2637 <td>String</td> 2638 <td>Path to JSL executable</td> 2639 <td>jsl</td> 2640 <td>No</td> 2641 </tr> 2642 <tr> 2643 <td>file</td> 2644 <td>String</td> 2645 <td>Path to source file</td> 2646 <td>n/a</td> 2647 <td>No</td> 2648 </tr> 2649 <tr> 2650 <td>haltonfailure</td> 2651 <td>Boolean</td> 2652 <td>Stop the build process if the linting process encounters an error.</td> 2653 <td>false</td> 2654 <td>No</td> 2655 </tr> 2656 <tr> 2657 <td>showwarnings</td> 2658 <td>Boolean</td> 2659 <td>Sets the flag if warnings should be shown.</td> 2660 <td>true</td> 2661 <td>No</td> 2662 </tr> 2663 <tr> 2664 <td>cachefile</td> 2665 <td>String</td> 2666 <td>If set, enables writing of last-modified times to <em>cachefile</em>, to 2667 speed up processing of files that rarely change</td> 2668 <td>none</td> 2669 <td>No</td> 2670 </tr> 2671 <tr> 2672 <td>conffile</td> 2673 <td>String</td> 2674 <td>Path to JSL config file</td> 2675 <td>none</td> 2676 <td>No</td> 2677 </tr> 2678 <tr> 2679 <td>tofile</td> 2680 <td>String</td> 2681 <td>File to write list of 'bad files' to.</td> 2682 <td>n/a</td> 2683 <td>No</td> 2684 </tr> 2685 </tbody> 2686 </table> 2687 <h3>Supported Nested Tags</h3> 2688 <ul> 2689 <li>fileset</li> 2690 </ul> 2691 <h3>Example</h3> 2692 <pre> 2762 2693 <jsllint file="path/to/source.php"/> 2763 2694 </pre> 2764 <p>Checking syntax of one particular source file.</p>2765 <pre>2695 <p>Checking syntax of one particular source file.</p> 2696 <pre> 2766 2697 <jsllint> 2767 2698 <fileset dir="src"> … … 2770 2701 </jsllint> 2771 2702 </pre> 2772 <p>Check syntax of a fileset of source files.</p> 2773 <h2> 2774 <a name="JsMinTask"></a>JsMinTask 2775 </h2> 2776 <p> 2777 The <em>JsMinTask</em> minifies JavaScript files using <a 2778 href="http://code.google.com/p/jsmin-php/">JsMin</a>. JsMin is 2779 bundled with Phing and does not need to be installed separately. 2780 </p> 2781 <p> 2782 For more information on minifying JavaScript files see <a 2783 href="http://www.crockford.com/javascript/jsmin.html" target="_blank">Douglas 2784 Crockford's introduction to minifying JavaScript files</a>. 2785 </p> 2786 <h3>Example</h3> 2787 <pre><jsMin targetDir="docroot/script/minified" failOnError="false"> 2703 <p>Check syntax of a fileset of source files.</p> 2704 <h2> 2705 <a name="JsMinTask"></a>JsMinTask </h2> 2706 <p> The <em>JsMinTask</em> minifies JavaScript files using <a 2707 href="http://code.google.com/p/jsmin-php/">JsMin</a>. JsMin is bundled with Phing 2708 and does not need to be installed separately. </p> 2709 <p> For more information on minifying JavaScript files see <a 2710 href="http://www.crockford.com/javascript/jsmin.html" target="_blank">Douglas 2711 Crockford's introduction to minifying JavaScript files</a>. </p> 2712 <h3>Example</h3> 2713 <pre><jsMin targetDir="docroot/script/minified" failOnError="false"> 2788 2714 <fileset dir="docroot/script"> 2789 2715 <include name="**/*.js"/> … … 2791 2717 </jsMin> 2792 2718 </pre> 2793 <h3>Attributes</h3> 2794 <table> 2795 <thead> 2796 <tr> 2797 <th>Name</th> 2798 <th>Type</th> 2799 <th>Description</th> 2800 <th>Default</th> 2801 <th>Required</th> 2802 </tr> 2803 </thead> 2804 <tbody> 2805 <tr> 2806 <td>targetDir</td> 2807 <td>String</td> 2808 <td>Path where to store minified JavaScript files</td> 2809 <td>none</td> 2810 <td>Yes</td> 2811 </tr> 2812 <tr> 2813 <td>suffix</td> 2814 <td>String</td> 2815 <td>Suffix to append to the filenames.</td> 2816 <td>-min</td> 2817 <td>No</td> 2818 </tr> 2819 <tr> 2820 <td>failonerror</td> 2821 <td>Boolean</td> 2822 <td>Whether an error while minifying a JavaScript file should 2823 stop the build or not</td> 2824 <td>false</td> 2825 <td>No</td> 2826 </tr> 2827 </tbody> 2828 </table> 2829 <h3>Supported Nested Tags</h3> 2830 <ul> 2831 <li>fileset 2832 <p>JavaScript files to be minified.</p></li> 2833 </ul> 2834 2835 <h2> 2836 <a name="MailTask"></a>MailTask 2837 </h2> 2838 <p>A task to send email.</p> 2839 2840 <h3>Example</h3> 2841 <pre><mail tolist="user@example.org" subject="build complete"">The build process is a success...</mail></pre> 2842 2843 <h3>Attributes</h3> 2844 <table> 2845 <thead> 2846 <tr> 2847 <th>Name</th> 2848 <th>Type</th> 2849 <th>Description</th> 2850 <th>Default</th> 2851 <th>Required</th> 2852 </tr> 2853 </thead> 2854 <tbody> 2855 <tr> 2856 <td>from</td> 2857 <td>String</td> 2858 <td>Email address of sender.</td> 2859 <td>none</td> 2860 <td>Yes</td> 2861 </tr> 2862 <tr> 2863 <td>tolist</td> 2864 <td>String</td> 2865 <td>Comma-separated list of recipients.</td> 2866 <td>none</td> 2867 <td>Yes</td> 2868 </tr> 2869 <tr> 2870 <td>message</td> 2871 <td>String</td> 2872 <td>Message to send in the body of the email.</td> 2873 <td>none</td> 2874 <td>No</td> 2875 </tr> 2876 <tr> 2877 <td>subject</td> 2878 <td>String</td> 2879 <td>Email subject line.</td> 2880 <td>none</td> 2881 <td>No</td> 2882 </tr> 2883 </tbody> 2884 </table> 2885 <h3>Supported Nested Tags</h3> 2886 <ul> 2887 <li>fileset 2888 <p>Files to be attached (not implemented at this time).</p></li> 2889 </ul> 2890 2891 <h2> 2892 <a name="PatchTask"></a>PatchTask 2893 </h2> 2894 <p> 2895 The <em>PatchTask</em> uses the <a 2896 href="http://savannah.gnu.org/projects/patch" target="_blank">patch</a> 2897 program to apply diff file to originals. 2898 </p> 2899 <p> 2900 <b>NB:</b> the patch program must be in the system path! 2901 </p> 2902 2903 <h3>Attributes</h3> 2904 <table> 2905 <thead> 2906 <tr> 2907 <th>Name</th> 2908 <th>Type</th> 2909 <th>Description</th> 2910 <th>Default</th> 2911 <th>Required</th> 2912 </tr> 2913 </thead> 2914 <tbody> 2915 <tr> 2916 <td>patchfile</td> 2917 <td>String</td> 2918 <td>File that includes the diff output</td> 2919 <td>n/a</td> 2920 <td>Yes</td> 2921 </tr> 2922 <tr> 2923 <td>originalfile</td> 2924 <td>String</td> 2925 <td>File to patch. If not specified Task tries to guess it from 2926 the diff file</td> 2927 <td>none</td> 2928 <td>No</td> 2929 </tr> 2930 <tr> 2931 <td>destfile</td> 2932 <td>String</td> 2933 <td>File to send the output to instead of patching the file in 2934 place</td> 2935 <td>none</td> 2936 <td>No</td> 2937 </tr> 2938 <tr> 2939 <td>backups</td> 2940 <td>Boolean</td> 2941 <td>Keep backups of the unpatched files</td> 2942 <td>false</td> 2943 <td>No</td> 2944 </tr> 2945 <tr> 2946 <td>quiet</td> 2947 <td>Boolean</td> 2948 <td>Work silently unless an error occurs</td> 2949 <td>false</td> 2950 <td>No</td> 2951 </tr> 2952 <tr> 2953 <td>reverse</td> 2954 <td>Boolean</td> 2955 <td>Assume patch was created with old and new files swapped</td> 2956 <td>false</td> 2957 <td>No</td> 2958 </tr> 2959 <tr> 2960 <td>ignorewhitespace</td> 2961 <td>Boolean</td> 2962 <td>Ignore whitespace differences</td> 2963 <td>false</td> 2964 <td>No</td> 2965 </tr> 2966 <tr> 2967 <td>strip</td> 2968 <td>Integer</td> 2969 <td>Strip the smallest prefix containing specified number of 2970 leading slashes from filenames</td> 2971 <td>none</td> 2972 <td>No</td> 2973 </tr> 2974 <tr> 2975 <td>dir</td> 2976 <td>String</td> 2977 <td>The directory in which to run the patch command</td> 2978 <td>none</td> 2979 <td>No</td> 2980 </tr> 2981 <tr> 2982 <td>haltonfailure</td> 2983 <td>Boolean</td> 2984 <td>Stop the build process if the patching process encounters 2985 an error.</td> 2986 <td>false</td> 2987 <td>No</td> 2988 </tr> 2989 </tbody> 2990 </table> 2991 2992 <h3>Example</h3> 2993 <pre> 2719 <h3>Attributes</h3> 2720 <table> 2721 <thead> 2722 <tr> 2723 <th>Name</th> 2724 <th>Type</th> 2725 <th>Description</th> 2726 <th>Default</th> 2727 <th>Required</th> 2728 </tr> 2729 </thead> 2730 <tbody> 2731 <tr> 2732 <td>targetDir</td> 2733 <td>String</td> 2734 <td>Path where to store minified JavaScript files</td> 2735 <td>none</td> 2736 <td>Yes</td> 2737 </tr> 2738 <tr> 2739 <td>suffix</td> 2740 <td>String</td> 2741 <td>Suffix to append to the filenames.</td> 2742 <td>-min</td> 2743 <td>No</td> 2744 </tr> 2745 <tr> 2746 <td>failonerror</td> 2747 <td>Boolean</td> 2748 <td>Whether an error while minifying a JavaScript file should stop the build or 2749 not</td> 2750 <td>false</td> 2751 <td>No</td> 2752 </tr> 2753 </tbody> 2754 </table> 2755 <h3>Supported Nested Tags</h3> 2756 <ul> 2757 <li>fileset <p>JavaScript files to be minified.</p></li> 2758 </ul> 2759 <h2> 2760 <a name="MailTask"></a>MailTask </h2> 2761 <p>A task to send email.</p> 2762 <h3>Example</h3> 2763 <pre><mail tolist="user@example.org" subject="build complete"">The build process is a success...</mail></pre> 2764 <h3>Attributes</h3> 2765 <table> 2766 <thead> 2767 <tr> 2768 <th>Name</th> 2769 <th>Type</th> 2770 <th>Description</th> 2771 <th>Default</th> 2772 <th>Required</th> 2773 </tr> 2774 </thead> 2775 <tbody> 2776 <tr> 2777 <td>from</td> 2778 <td>String</td> 2779 <td>Email address of sender.</td> 2780 <td>none</td> 2781 <td>Yes</td> 2782 </tr> 2783 <tr> 2784 <td>tolist</td> 2785 <td>String</td> 2786 <td>Comma-separated list of recipients.</td> 2787 <td>none</td> 2788 <td>Yes</td> 2789 </tr> 2790 <tr> 2791 <td>message</td> 2792 <td>String</td> 2793 <td>Message to send in the body of the email.</td> 2794 <td>none</td> 2795 <td>No</td> 2796 </tr> 2797 <tr> 2798 <td>subject</td> 2799 <td>String</td> 2800 <td>Email subject line.</td> 2801 <td>none</td> 2802 <td>No</td> 2803 </tr> 2804 </tbody> 2805 </table> 2806 <h3>Supported Nested Tags</h3> 2807 <ul> 2808 <li>fileset <p>Files to be attached (not implemented at this time).</p></li> 2809 </ul> 2810 <h2> 2811 <a name="PatchTask"></a>PatchTask </h2> 2812 <p> The <em>PatchTask</em> uses the <a href="http://savannah.gnu.org/projects/patch" 2813 target="_blank">patch</a> program to apply diff file to originals. </p> 2814 <p> 2815 <b>NB:</b> the patch program must be in the system path! </p> 2816 <h3>Attributes</h3> 2817 <table> 2818 <thead> 2819 <tr> 2820 <th>Name</th> 2821 <th>Type</th> 2822 <th>Description</th> 2823 <th>Default</th> 2824 <th>Required</th> 2825 </tr> 2826 </thead> 2827 <tbody> 2828 <tr> 2829 <td>patchfile</td> 2830 <td>String</td> 2831 <td>File that includes the diff output</td> 2832 <td>n/a</td> 2833 <td>Yes</td> 2834 </tr> 2835 <tr> 2836 <td>originalfile</td> 2837 <td>String</td> 2838 <td>File to patch. If not specified Task tries to guess it from the diff 2839 file</td> 2840 <td>none</td> 2841 <td>No</td> 2842 </tr> 2843 <tr> 2844 <td>destfile</td> 2845 <td>String</td> 2846 <td>File to send the output to instead of patching the file in place</td> 2847 <td>none</td> 2848 <td>No</td> 2849 </tr> 2850 <tr> 2851 <td>backups</td> 2852 <td>Boolean</td> 2853 <td>Keep backups of the unpatched files</td> 2854 <td>false</td> 2855 <td>No</td> 2856 </tr> 2857 <tr> 2858 <td>quiet</td> 2859 <td>Boolean</td> 2860 <td>Work silently unless an error occurs</td> 2861 <td>false</td> 2862 <td>No</td> 2863 </tr> 2864 <tr> 2865 <td>reverse</td> 2866 <td>Boolean</td> 2867 <td>Assume patch was created with old and new files swapped</td> 2868 <td>false</td> 2869 <td>No</td> 2870 </tr> 2871 <tr> 2872 <td>ignorewhitespace</td> 2873 <td>Boolean</td> 2874 <td>Ignore whitespace differences</td> 2875 <td>false</td> 2876 <td>No</td> 2877 </tr> 2878 <tr> 2879 <td>strip</td> 2880 <td>Integer</td> 2881 <td>Strip the smallest prefix containing specified number of leading slashes 2882 from filenames</td> 2883 <td>none</td> 2884 <td>No</td> 2885 </tr> 2886 <tr> 2887 <td>dir</td> 2888 <td>String</td> 2889 <td>The directory in which to run the patch command</td> 2890 <td>none</td> 2891 <td>No</td> 2892 </tr> 2893 <tr> 2894 <td>haltonfailure</td> 2895 <td>Boolean</td> 2896 <td>Stop the build process if the patching process encounters an error.</td> 2897 <td>false</td> 2898 <td>No</td> 2899 </tr> 2900 </tbody> 2901 </table> 2902 <h3>Example</h3> 2903 <pre> 2994 2904 <patch 2995 2905 patchfile="/path/to/patches/file.ext.patch" … … 2997 2907 /> 2998 2908 </pre> 2999 3000 <p>Apply "file.ext.path" to original file locataed in 3001 "/path/to/original" folder.</p> 3002 3003 <h2> 3004 <a name="PDOSQLExecTask"></a>PDOSQLExecTask 3005 </h2> 3006 <p> 3007 The <em>PDOSQLExecTask</em> executes SQL statements using PDO. 3008 </p> 3009 <h3>Examples</h3> 3010 <pre><pdosqlexec url="pgsql:host=localhost dbname=test"> 2909 <p>Apply "file.ext.path" to original file locataed in "/path/to/original" folder.</p> 2910 <h2> 2911 <a name="PDOSQLExecTask"></a>PDOSQLExecTask </h2> 2912 <p> The <em>PDOSQLExecTask</em> executes SQL statements using PDO. </p> 2913 <h3>Examples</h3> 2914 <pre><pdosqlexec url="pgsql:host=localhost dbname=test"> 3011 2915 <fileset dir="sqlfiles"> 3012 2916 <include name="*.sql"/> 3013 2917 </fileset><br /></pdosqlexec> 3014 2918 </pre> 3015 <pre><pdosqlexec url="mysql:host=localhost;dbname=test" userid="username" password="password">2919 <pre><pdosqlexec url="mysql:host=localhost;dbname=test" userid="username" password="password"> 3016 2920 <transaction src="path/to/sqlfile.sql"/> 3017 2921 <formatter type="plain" outfile="path/to/output.txt"/> 3018 2922 </pdosqlexec> 3019 2923 </pre> 3020 <p> 3021 <strong>Note:</strong> because of backwards compatiblity, the 3022 PDOSQLExecTask can also be called using the <em>'pdo'</em> statement. 3023 </p> 3024 <h3>Attributes</h3> 3025 <table> 3026 <thead> 3027 <tr> 3028 <th>Name</th> 3029 <th>Type</th> 3030 <th>Description</th> 3031 <th>Default</th> 3032 <th>Required</th> 3033 </tr> 3034 </thead> 3035 <tbody> 3036 <tr> 3037 <td>url</td> 3038 <td>String</td> 3039 <td>PDO connection URL (DSN)</td> 3040 <td>none</td> 3041 <td>Yes</td> 3042 </tr> 3043 <tr> 3044 <td>userid</td> 3045 <td>String</td> 3046 <td>Username for connection (if it cannot be specified in URL) 3047 </td> 3048 <td>none</td> 3049 <td>No</td> 3050 </tr> 3051 <tr> 3052 <td>password</td> 3053 <td>String</td> 3054 <td>The password to use for the connection (if it cannot be 3055 specified in URL)</td> 3056 <td>none</td> 3057 <td>No</td> 3058 </tr> 3059 <!-- <tr> 2924 <p> 2925 <strong>Note:</strong> because of backwards compatiblity, the PDOSQLExecTask can also be 2926 called using the <em>'pdo'</em> statement. </p> 2927 <h3>Attributes</h3> 2928 <table> 2929 <thead> 2930 <tr> 2931 <th>Name</th> 2932 <th>Type</th> 2933 <th>Description</th> 2934 <th>Default</th> 2935 <th>Required</th> 2936 </tr> 2937 </thead> 2938 <tbody> 2939 <tr> 2940 <td>url</td> 2941 <td>String</td> 2942 <td>PDO connection URL (DSN)</td> 2943 <td>none</td> 2944 <td>Yes</td> 2945 </tr> 2946 <tr> 2947 <td>userid</td> 2948 <td>String</td> 2949 <td>Username for connection (if it cannot be specified in URL) </td> 2950 <td>none</td> 2951 <td>No</td> 2952 </tr> 2953 <tr> 2954 <td>password</td> 2955 <td>String</td> 2956 <td>The password to use for the connection (if it cannot be specified in 2957 URL)</td> 2958 <td>none</td> 2959 <td>No</td> 2960 </tr> 2961 <!-- <tr> 3060 2962 <td>encoding</td> 3061 2963 <td>String</td> … … 3064 2966 <td>No</td> 3065 2967 </tr> --> 3066 <tr> 3067 <td>src</td> 3068 <td>File</td> 3069 <td>A single source file of SQL statements to execute.</td> 3070 <td>none</td> 3071 <td>No</td> 3072 </tr> 3073 <tr> 3074 <td>onerror</td> 3075 <td>String</td> 3076 <td>The action to perform on error (continue, stop, or abort)</td> 3077 <td>abort</td> 3078 <td>No</td> 3079 </tr> 3080 <tr> 3081 <td>delimiter</td> 3082 <td>String</td> 3083 <td>The delimeter to separate SQL statements (e.g. 3084 "GO" in MSSQL)</td> 3085 <td>;</td> 3086 <td>No</td> 3087 </tr> 3088 <tr> 3089 <td>delimitertype</td> 3090 <td>String</td> 3091 <td>The delimiter type ("normal" or "row"). 3092 Normal means that any occurence of the delimiter terminate the SQL 3093 command whereas with row, only a line containing just the delimiter 3094 is recognized as the end of the command.</td> 3095 <td>normal</td> 3096 <td>No</td> 3097 </tr> 3098 <tr> 3099 <td>autocommit</td> 3100 <td>Boolean</td> 3101 <td>Whether to autocommit every single statement.</td> 3102 <td>false</td> 3103 <td>No</td> 3104 </tr> 3105 </tbody> 3106 </table> 3107 <h3>Supported Nested Tags</h3> 3108 <ul> 3109 <li>transaction 3110 <p>Wrapper for a single transaction. Transactions allow several 3111 files or blocks of statements to be executed using the same PDO 3112 connection and commit operation in between.</p> 3113 <h3>Attributes</h3> 3114 <table> 3115 <thead> 3116 <tr> 3117 <th>Name</th> 3118 <th>Type</th> 3119 <th>Description</th> 3120 <th>Default</th> 3121 <th>Required</th> 3122 </tr> 3123 </thead> 3124 <tbody> 3125 <tr> 3126 <td>tsrcfile</td> 3127 <td>String</td> 3128 <td>File with statements to be run as one transaction</td> 3129 <td>n/a</td> 3130 <td>No</td> 3131 </tr> 3132 </tbody> 3133 </table> 3134 </li> 3135 <li>fileset 3136 <p>Files containing SQL statements.</p></li> 3137 <li>filelist 3138 <p>Files containing SQL statements.</p></li> 3139 <li>formatter 3140 <p> 3141 The results of any queries that are executed can be printed in 3142 different formats. Output will always be sent to a file, unless you 3143 set the <em>usefile</em> attribute to <em>false</em>. The path to 3144 the output file file can be specified by the <em>outfile</em> 3145 attribute; there is a default filename that will be returned by the 3146 formatter if no output file is specified. 3147 </p> 3148 <p>There are three predefined formatters - one prints the query 3149 results in XML format, the other emits plain text. Custom formatters 3150 that extend phing.tasks.pdo.PDOResultFormatter can be specified.</p> 3151 <h3>Attributes</h3> 3152 <table> 3153 <thead> 3154 <tr> 3155 <th>Name</th> 3156 <th>Type</th> 3157 <th>Description</th> 3158 <th>Default</th> 3159 <th>Required</th> 3160 </tr> 3161 </thead> 3162 <tbody> 3163 <tr> 3164 <td>type</td> 3165 <td>String</td> 3166 <td>Use a predefined formatter (either <em>xml</em> or <em>plain</em>). 3167 </td> 3168 <td>n/a</td> 3169 <td rowspan="2">One of these attributes is required.</td> 3170 </tr> 3171 <tr> 3172 <td>classname</td> 3173 <td>String</td> 3174 <td>Name of a custom formatter class (must extend 3175 phing.tasks.ext.pdo.PDOResultFormatter).</td> 3176 <td>n/a</td> 3177 </tr> 3178 <tr> 3179 <td>usefile</td> 3180 <td>Boolean</td> 3181 <td>Boolean that determines whether output should be sent to 3182 a file.</td> 3183 <td>true</td> 3184 <td>No</td> 3185 </tr> 3186 <tr> 3187 <td>outfile</td> 3188 <td>File</td> 3189 <td>Path to file in which to store result.</td> 3190 <td>Depends on formatter</td> 3191 <td>No</td> 3192 </tr> 3193 <tr> 3194 <td>showheaders</td> 3195 <td>Boolean</td> 3196 <td>(only applies to plain formatter) Whether to show column 3197 headers.</td> 3198 <td>false</td> 3199 <td>No</td> 3200 </tr> 3201 <tr> 3202 <td>coldelim</td> 3203 <td>String</td> 3204 <td>(only applies to plain formatter) The column delimiter.</td> 3205 <td>,</td> 3206 <td>No</td> 3207 </tr> 3208 <tr> 3209 <td>rowdelim</td> 3210 <td>String</td> 3211 <td>(only applies to plain formatter) The row delimiter.</td> 3212 <td>\n</td> 3213 <td>No</td> 3214 </tr> 3215 <tr> 3216 <td>encoding</td> 3217 <td>String</td> 3218 <td>(only applies to XML formatter) The xml document 3219 encoding.</td> 3220 <td>(PHP default)</td> 3221 <td>No</td> 3222 </tr> 3223 <tr> 3224 <td>formatoutput</td> 3225 <td>Boolean</td> 3226 <td>(only applies to XML formatter) Whether to format XML 3227 output.</td> 3228 <td>true</td> 3229 <td>No</td> 3230 </tr> 3231 </tbody> 3232 </table> 3233 <h3>Examples</h3> <pre><pdo url="pgsql:host=localhost dbname=test"> 2968 <tr> 2969 <td>src</td> 2970 <td>File</td> 2971 <td>A single source file of SQL statements to execute.</td> 2972 <td>none</td> 2973 <td>No</td> 2974 </tr> 2975 <tr> 2976 <td>onerror</td> 2977 <td>String</td> 2978 <td>The action to perform on error (continue, stop, or abort)</td> 2979 <td>abort</td> 2980 <td>No</td> 2981 </tr> 2982 <tr> 2983 <td>delimiter</td> 2984 <td>String</td> 2985 <td>The delimeter to separate SQL statements (e.g. "GO" in MSSQL)</td> 2986 <td>;</td> 2987 <td>No</td> 2988 </tr> 2989 <tr> 2990 <td>delimitertype</td> 2991 <td>String</td> 2992 <td>The delimiter type ("normal" or "row"). Normal means 2993 that any occurence of the delimiter terminate the SQL command whereas with 2994 row, only a line containing just the delimiter is recognized as the end of 2995 the command.</td> 2996 <td>normal</td> 2997 <td>No</td> 2998 </tr> 2999 <tr> 3000 <td>autocommit</td> 3001 <td>Boolean</td> 3002 <td>Whether to autocommit every single statement.</td> 3003 <td>false</td> 3004 <td>No</td> 3005 </tr> 3006 </tbody> 3007 </table> 3008 <h3>Supported Nested Tags</h3> 3009 <ul> 3010 <li>transaction <p>Wrapper for a single transaction. Transactions allow several files or 3011 blocks of statements to be executed using the same PDO connection and commit 3012 operation in between.</p> 3013 <h3>Attributes</h3> 3014 <table> 3015 <thead> 3016 <tr> 3017 <th>Name</th> 3018 <th>Type</th> 3019 <th>Description</th> 3020 <th>Default</th> 3021 <th>Required</th> 3022 </tr> 3023 </thead> 3024 <tbody> 3025 <tr> 3026 <td>tsrcfile</td> 3027 <td>String</td> 3028 <td>File with statements to be run as one transaction</td> 3029 <td>n/a</td> 3030 <td>No</td> 3031 </tr> 3032 </tbody> 3033 </table> 3034 </li> 3035 <li>fileset <p>Files containing SQL statements.</p></li> 3036 <li>filelist <p>Files containing SQL statements.</p></li> 3037 <li>formatter <p> The results of any queries that are executed can be printed in 3038 different formats. Output will always be sent to a file, unless you set the 3039 <em>usefile</em> attribute to <em>false</em>. The path to the output file 3040 file can be specified by the <em>outfile</em> attribute; there is a default 3041 filename that will be returned by the formatter if no output file is specified. </p> 3042 <p>There are three predefined formatters - one prints the query results in XML 3043 format, the other emits plain text. Custom formatters that extend 3044 phing.tasks.pdo.PDOResultFormatter can be specified.</p> 3045 <h3>Attributes</h3> 3046 <table> 3047 <thead> 3048 <tr> 3049 <th>Name</th> 3050 <th>Type</th> 3051 <th>Description</th> 3052 <th>Default</th> 3053 <th>Required</th> 3054 </tr> 3055 </thead> 3056 <tbody> 3057 <tr> 3058 <td>type</td> 3059 <td>String</td> 3060 <td>Use a predefined formatter (either <em>xml</em> or <em>plain</em>). </td> 3061 <td>n/a</td> 3062 <td rowspan="2">One of these attributes is required.</td> 3063 </tr> 3064 <tr> 3065 <td>classname</td> 3066 <td>String</td> 3067 <td>Name of a custom formatter class (must extend 3068 phing.tasks.ext.pdo.PDOResultFormatter).</td> 3069 <td>n/a</td> 3070 </tr> 3071 <tr> 3072 <td>usefile</td> 3073 <td>Boolean</td> 3074 <td>Boolean that determines whether output should be sent to a 3075 file.</td> 3076 <td>true</td> 3077 <td>No</td> 3078 </tr> 3079 <tr> 3080 <td>outfile</td> 3081 <td>File</td> 3082 <td>Path to file in which to store result.</td> 3083 <td>Depends on formatter</td> 3084 <td>No</td> 3085 </tr> 3086 <tr> 3087 <td>showheaders</td> 3088 <td>Boolean</td> 3089 <td>(only applies to plain formatter) Whether to show column 3090 headers.</td> 3091 <td>false</td> 3092 <td>No</td> 3093 </tr> 3094 <tr> 3095 <td>coldelim</td> 3096 <td>String</td> 3097 <td>(only applies to plain formatter) The column delimiter.</td> 3098 <td>,</td> 3099 <td>No</td> 3100 </tr> 3101 <tr> 3102 <td>rowdelim</td> 3103 <td>String</td> 3104 <td>(only applies to plain formatter) The row delimiter.</td> 3105 <td>\n</td> 3106 <td>No</td> 3107 </tr> 3108 <tr> 3109 <td>encoding</td> 3110 <td>String</td> 3111 <td>(only applies to XML formatter) The xml document encoding.</td> 3112 <td>(PHP default)</td> 3113 <td>No</td> 3114 </tr> 3115 <tr> 3116 <td>formatoutput</td> 3117 <td>Boolean</td> 3118 <td>(only applies to XML formatter) Whether to format XML output.</td> 3119 <td>true</td> 3120 <td>No</td> 3121 </tr> 3122 </tbody> 3123 </table> 3124 <h3>Examples</h3> 3125 <pre><pdo url="pgsql:host=localhost dbname=test"> 3234 3126 <fileset dir="sqlfiles"> 3235 3127 <include name="*.sql"/> … … 3247 3139 <formatter type="plain" usefile="false" /><br /></pdo> 3248 3140 </pre> 3249 </li> 3250 </ul> 3251 <h2> 3252 <a name="PearPackageTask"></a> PearPackageTask 3253 </h2> 3254 <p> 3255 With the PearPackageTask, you can create a package.xml which can be 3256 installed using the PEAR installer. Use this in conjunction with the <a 3257 href="#Tasks.TarTask">TarTask</a> to completely script the building 3258 of a PEAR package. 3259 </p> 3260 3261 <p> 3262 <strong>Note that this task creates a <em>version 1</em> 3263 package.xml file.</strong> 3264 </p> 3265 <p> 3266 This task uses the 3267 <code>PEAR_PackageFileManager</code> 3268 class. In order to be maximally flexible, the majority of options are 3269 set generically (using <em><option></em> tag) and are set using 3270 <code>PEAR_PackageFileManager::setOptions()</code> 3271 . Use the <em><mapping></em> tag to represent complex values 3272 (which are turned into associative arrays and also set using 3273 <code>setOptions()</code> 3274 method). 3275 </p> 3276 <h3>Example</h3> 3277 <pre> 3141 </li> 3142 </ul> 3143 <h2> 3144 <a name="PearPackageTask"></a> PearPackageTask </h2> 3145 <p> With the PearPackageTask, you can create a package.xml which can be installed using the 3146 PEAR installer. Use this in conjunction with the <a href="#Tasks.TarTask">TarTask</a> to 3147 completely script the building of a PEAR package. </p> 3148 <p> 3149 <strong>Note that this task creates a <em>version 1</em> package.xml file.</strong> 3150 </p> 3151 <p> This task uses the <code>PEAR_PackageFileManager</code> class. In order to be maximally 3152 flexible, the majority of options are set generically (using <em><option></em> 3153 tag) and are set using <code>PEAR_PackageFileManager::setOptions()</code> . Use the 3154 <em><mapping></em> tag to represent complex values (which are turned into 3155 associative arrays and also set using <code>setOptions()</code> method). </p> 3156 <h3>Example</h3> 3157 <pre> 3278 3158 <pearpkg name="phing" dir="${build.src.dir}" destFile="${build.base.dir}/package.xml"> 3279 3159 <fileset dir="."> … … 3295 3175 </pearpkg> 3296 3176 </pre> 3297 <h3>Attributes</h3> 3298 <table> 3299 <thead> 3300 <tr> 3301 <th>Name</th> 3302 <th>Type</th> 3303 <th>Description</th> 3304 <th>Default</th> 3305 <th>Required</th> 3306 </tr> 3307 </thead> 3308 <tbody> 3309 <tr> 3310 <td>name</td> 3311 <td>String</td> 3312 <td>The name of the PEAR package.</td> 3313 <td>n/a</td> 3314 <td>Yes</td> 3315 </tr> 3316 <tr> 3317 <td>dir</td> 3318 <td>String</td> 3319 <td>The base directory of files to add to package.</td> 3320 <td>n/a</td> 3321 <td>Yes</td> 3322 </tr> 3323 <tr> 3324 <td>destFile</td> 3325 <td>String</td> 3326 <td>The file to create.</td> 3327 <td>package.xml in base directory</td> 3328 <td>No</td> 3329 </tr> 3330 </tbody> 3331 </table> 3332 <h3>Supported Nested Tags</h3> 3333 <ul> 3334 <li>fileset</li> 3335 <li>option</li> 3336 <li><p>mapping</p> 3337 <p> 3338 The <mapping> tag represents a complex data type. You can use 3339 nested <mapping> (and nested <element> with 3340 <element> tags) to represent the full complexity of the 3341 structure. Bear in mind that what you are creating will be mapped to 3342 an associative array that will be passed in via 3343 <code>PEAR_PackageFileMaintainer::setOptions()</code> 3344 . 3345 </p> <pre><mapping name="option_name"> 3177 <h3>Attributes</h3> 3178 <table> 3179 <thead> 3180 <tr> 3181 <th>Name</th> 3182 <th>Type</th> 3183 <th>Description</th> 3184 <th>Default</th> 3185 <th>Required</th> 3186 </tr> 3187 </thead> 3188 <tbody> 3189 <tr> 3190 <td>name</td> 3191 <td>String</td> 3192 <td>The name of the PEAR package.</td> 3193 <td>n/a</td> 3194 <td>Yes</td> 3195 </tr> 3196 <tr> 3197 <td>dir</td> 3198 <td>String</td> 3199 <td>The base directory of files to add to package.</td> 3200 <td>n/a</td> 3201 <td>Yes</td> 3202 </tr> 3203 <tr> 3204 <td>destFile</td> 3205 <td>String</td> 3206 <td>The file to create.</td> 3207 <td>package.xml in base directory</td> 3208 <td>No</td> 3209 </tr> 3210 </tbody> 3211 </table> 3212 <h3>Supported Nested Tags</h3> 3213 <ul> 3214 <li>fileset</li> 3215 <li>option</li> 3216 <li><p>mapping</p> 3217 <p> The <mapping> tag represents a complex data type. You can use nested 3218 <mapping> (and nested <element> with <element> tags) to 3219 represent the full complexity of the structure. Bear in mind that what you are 3220 creating will be mapped to an associative array that will be passed in via 3221 <code>PEAR_PackageFileMaintainer::setOptions()</code> . </p> 3222 <pre><mapping name="option_name"> 3346 3223 <element key="key_name" value="key_val"/> 3347 3224 <element key="key_name" value="key_val"/> 3348 3225 </mapping></pre> 3349 </li> 3350 <li> 3351 <p>role <br/> See <a href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addrole.php" target="_blank">PEAR_PackageFileManager::addRole</a> for more information.</p> 3352 3353 <p>Available options:</p> 3354 <table> 3355 <thead> 3356 <tr> 3357 <th>Name</th> 3358 <th>Type</th> 3359 <th>Description</th> 3360 <th>Default</th> 3361 <th>Required</th> 3362 </tr> 3363 </thead> 3364 <tbody> 3365 <tr> 3366 <td>extension</td> 3367 <td>String</td> 3368 <td>The file extension</td> 3369 <td>n/a</td> 3370 <td>Yes</td> 3371 </tr> 3372 <tr> 3373 <td>role</td> 3374 <td>String</td> 3375 <td>The file extension</td> 3376 <td>n/a</td> 3377 <td>Yes</td> 3378 </tr> 3379 </tbody> 3380 </table> 3381 </li> 3382 </ul> 3383 3384 <h2> 3385 <a name="PearPackage2Task"></a>PearPackage2Task 3386 </h2> 3387 <p> 3388 With the PearPackage2Task, you can create a <em>version 2</em> 3389 package.xml which can be installed using the PEAR installer. Use this 3390 in conjunction with the <a href="#Tasks.TarTask">TarTask</a> to 3391 completely script the building of a PEAR package. 3392 </p> 3393 <p> 3394 This task uses the PEAR_PackageFileManager2 class. In order to be 3395 maximally flexible, the majority of options are set generically (using 3396 <em><option></em> tag) and are set using 3397 PEAR_PackageFileManager::setOptions(). Use the <em><mapping></em> 3398 tag to represent complex values. 3399 </p> 3400 <p> 3401 Note that Travis Swicegood has created a more complete implementation 3402 of this functionality which can be found here: <a 3403 href="http://pear.domain51.com/">pear.domain51.com</a>. 3404 </p> 3405 <h3>Example</h3> 3406 <pre><pearpkg2 name="phing" dir="${build.src.dir}"> 3226 </li> 3227 <li> 3228 <p>role <br /> See <a 3229 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addrole.php" 3230 target="_blank">PEAR_PackageFileManager::addRole</a> for more 3231 information.</p> 3232 <p>Available options:</p> 3233 <table> 3234 <thead> 3235 <tr> 3236 <th>Name</th> 3237 <th>Type</th> 3238 <th>Description</th> 3239 <th>Default</th> 3240 <th>Required</th> 3241 </tr> 3242 </thead> 3243 <tbody> 3244 <tr> 3245 <td>extension</td> 3246 <td>String</td> 3247 <td>The file extension</td> 3248 <td>n/a</td> 3249 <td>Yes</td> 3250 </tr> 3251 <tr> 3252 <td>role</td> 3253 <td>String</td> 3254 <td>The file extension</td> 3255 <td>n/a</td> 3256 <td>Yes</td> 3257 </tr> 3258 </tbody> 3259 </table> 3260 </li> 3261 </ul> 3262 <h2> 3263 <a name="PearPackage2Task"></a>PearPackage2Task </h2> 3264 <p> With the PearPackage2Task, you can create a <em>version 2</em> package.xml which can be 3265 installed using the PEAR installer. Use this in conjunction with the <a 3266 href="#Tasks.TarTask">TarTask</a> to completely script the building of a PEAR 3267 package. </p> 3268 <p> This task uses the PEAR_PackageFileManager2 class. In order to be maximally flexible, 3269 the majority of options are set generically (using <em><option></em> tag) and are 3270 set using PEAR_PackageFileManager::setOptions(). Use the <em><mapping></em> tag to 3271 represent complex values. </p> 3272 <p> Note that Travis Swicegood has created a more complete implementation of this 3273 functionality which can be found here: <a href="http://pear.domain51.com/" 3274 >pear.domain51.com</a>. </p> 3275 <h3>Example</h3> 3276 <pre><pearpkg2 name="phing" dir="${build.src.dir}"> 3407 3277 <option name="outputdirectory" value="./build"/><br /> <option name="packagefile" value="package2.xml"/><br /> <option name="packagedirectory" value="./${build.dist.dir}"/><br /> <option name="baseinstalldir" value="${pkg.prefix}"/><br /> <option name="channel" value="my.pear-channel.com"/><br /> <option name="summary" value="${pkg.summary}"/><br /> <option name="description" value="${pkg.description}"/><br /> <option name="apiversion" value="${pkg.version}"/><br /> <option name="apistability" value="beta"/><br /> <option name="releaseversion" value="${pkg.version}"/><br /> <option name="releasestability" value="beta"/><br /> <option name="license" value="none"/><br /> <option name="phpdep" value="5.0.0"/><br /> <option name="pearinstallerdep" value="1.4.6"/><br /> <option name="packagetype" value="php"/><br /> <option name="notes" value="${pkg.relnotes}"/><br /> <mapping name="maintainers"><br /> <element><br /> <element key="handle" value="hlellelid"/><br /> <element key="name" value="Hans"/><br /> <element key="email" value="hans@xmpl.org"/><br /> <element key="role" value="lead"/><br /> </element><br /> </mapping><br /></pearpkg2></pre> 3408 <h3>Attributes</h3> 3409 <table> 3410 <thead> 3411 <tr> 3412 <th>Name</th> 3413 <th>Type</th> 3414 <th>Description</th> 3415 <th>Default</th> 3416 <th>Required</th> 3417 </tr> 3418 </thead> 3419 <tbody> 3420 <tr> 3421 <td>name</td> 3422 <td>String</td> 3423 <td>The name of the PEAR package.</td> 3424 <td>n/a</td> 3425 <td>Yes</td> 3426 </tr> 3427 <tr> 3428 <td>dir</td> 3429 <td>String</td> 3430 <td>The base directory of files to add to package.</td> 3431 <td>n/a</td> 3432 <td>Yes</td> 3433 </tr> 3434 </tbody> 3435 </table> 3436 <h3>Supported Nested Tags</h3> 3437 <ul> 3438 <li>fileset</li> 3439 <li> 3440 <p>option</p> 3441 3442 <p>Available options:</p> 3443 <table> 3444 <thead> 3445 <tr> 3446 <th>Name</th> 3447 <th>Type</th> 3448 <th>Description</th> 3449 <th>Default</th> 3450 <th>Required</th> 3451 </tr> 3452 </thead> 3453 <tbody> 3454 <tr> 3455 <td>summary</td> 3456 <td>String</td> 3457 <td></td> 3458 <td>n/a</td> 3459 <td>Yes</td> 3460 </tr> 3461 <tr> 3462 <td>description</td> 3463 <td>String</td> 3464 <td></td> 3465 <td>n/a</td> 3466 <td>Yes</td> 3467 </tr> 3468 <tr> 3469 <td>license</td> 3470 <td>String</td> 3471 <td></td> 3472 <td>n/a</td> 3473 <td>Yes</td> 3474 </tr> 3475 <tr> 3476 <td>channel</td> 3477 <td>String</td> 3478 <td>Channel name (not alias!). Must be registered (<code> 3479 pear channel-discover <em>channel</em> 3480 </code>) on the machine, where the build will be.</td> 3481 <td>n/a</td> 3482 <td>Yes</td> 3483 </tr> 3484 <tr> 3485 <td>apiversion</td> 3486 <td>String</td> 3487 <td></td> 3488 <td>n/a</td> 3489 <td>Yes</td> 3490 </tr> 3491 <tr> 3492 <td>releaseversion</td> 3493 <td>String</td> 3494 <td></td> 3495 <td>n/a</td> 3496 <td>Yes</td> 3497 </tr> 3498 <tr> 3499 <td>releasestability</td> 3500 <td>String</td> 3501 <td>One from: snapshot, devel, alpha, beta or stable.</td> 3502 <td>n/a</td> 3503 <td>Yes</td> 3504 </tr> 3505 <tr> 3506 <td>apistability</td> 3507 <td>String</td> 3508 <td>One from: devel, alpha, beta or stable.</td> 3509 <td>n/a</td> 3510 <td>Yes</td> 3511 </tr> 3512 <tr> 3513 <td>note</td> 3514 <td>String</td> 3515 <td></td> 3516 <td>n/a</td> 3517 <td>Yes</td> 3518 </tr> 3519 <tr> 3520 <td>packagetype</td> 3521 <td>String</td> 3522 <td></td> 3523 <td>n/a</td> 3524 <td>Yes</td> 3525 </tr> 3526 <tr> 3527 <td>phpdep</td> 3528 <td>String</td> 3529 <td></td> 3530 <td>n/a</td> 3531 <td>Yes</td> 3532 </tr> 3533 <tr> 3534 <td>pearinstallerdep</td> 3535 <td>String</td> 3536 <td></td> 3537 <td>n/a</td> 3538 <td>Yes</td> 3539 </tr> 3540 </tbody> 3541 </table> 3542 </li> 3543 <li><p>mapping</p> 3544 <p> 3545 The <mapping> tag represents a complex data type. You can use 3546 nested <mapping> (and nested <element> with 3547 <element> tags) to represent the full complexity of the 3548 structure. Bear in mind that what you are creating will be mapped to 3549 an associative array that will be passed in via 3550 <code>PEAR_PackageFileMaintainer::setOptions()</code> 3551 . 3552 </p> <pre><mapping name="option_name"> 3278 <h3>Attributes</h3> 3279 <table> 3280 <thead> 3281 <tr> 3282 <th>Name</th> 3283 <th>Type</th> 3284 <th>Description</th> 3285 <th>Default</th> 3286 <th>Required</th> 3287 </tr> 3288 </thead> 3289 <tbody> 3290 <tr> 3291 <td>name</td> 3292 <td>String</td> 3293 <td>The name of the PEAR package.</td> 3294 <td>n/a</td> 3295 <td>Yes</td> 3296 </tr> 3297 <tr> 3298 <td>dir</td> 3299 <td>String</td> 3300 <td>The base directory of files to add to package.</td> 3301 <td>n/a</td> 3302 <td>Yes</td> 3303 </tr> 3304 </tbody> 3305 </table> 3306 <h3>Supported Nested Tags</h3> 3307 <ul> 3308 <li>fileset</li> 3309 <li> 3310 <p>option</p> 3311 <p>Available options:</p> 3312 <table> 3313 <thead> 3314 <tr> 3315 <th>Name</th> 3316 <th>Type</th> 3317 <th>Description</th> 3318 <th>Default</th> 3319 <th>Required</th> 3320 </tr> 3321 </thead> 3322 <tbody> 3323 <tr> 3324 <td>summary</td> 3325 <td>String</td> 3326 <td></td> 3327 <td>n/a</td> 3328 <td>Yes</td> 3329 </tr> 3330 <tr> 3331 <td>description</td> 3332 <td>String</td> 3333 <td></td> 3334 <td>n/a</td> 3335 <td>Yes</td> 3336 </tr> 3337 <tr> 3338 <td>license</td> 3339 <td>String</td> 3340 <td></td> 3341 <td>n/a</td> 3342 <td>Yes</td> 3343 </tr> 3344 <tr> 3345 <td>channel</td> 3346 <td>String</td> 3347 <td>Channel name (not alias!). Must be registered (<code> pear 3348 channel-discover <em>channel</em> 3349 </code>) on the machine, where the build will be.</td> 3350 <td>n/a</td> 3351 <td>Yes</td> 3352 </tr> 3353 <tr> 3354 <td>apiversion</td> 3355 <td>String</td> 3356 <td></td> 3357 <td>n/a</td> 3358 <td>Yes</td> 3359 </tr> 3360 <tr> 3361 <td>releaseversion</td> 3362 <td>String</td> 3363 <td></td> 3364 <td>n/a</td> 3365 <td>Yes</td> 3366 </tr> 3367 <tr> 3368 <td>releasestability</td> 3369 <td>String</td> 3370 <td>One from: snapshot, devel, alpha, beta or stable.</td> 3371 <td>n/a</td> 3372 <td>Yes</td> 3373 </tr> 3374 <tr> 3375 <td>apistability</td> 3376 <td>String</td> 3377 <td>One from: devel, alpha, beta or stable.</td> 3378 <td>n/a</td> 3379 <td>Yes</td> 3380 </tr> 3381 <tr> 3382 <td>note</td> 3383 <td>String</td> 3384 <td></td> 3385 <td>n/a</td> 3386 <td>Yes</td> 3387 </tr> 3388 <tr> 3389 <td>packagetype</td> 3390 <td>String</td> 3391 <td></td> 3392 <td>n/a</td> 3393 <td>Yes</td> 3394 </tr> 3395 <tr> 3396 <td>phpdep</td> 3397 <td>String</td> 3398 <td></td> 3399 <td>n/a</td> 3400 <td>Yes</td> 3401 </tr> 3402 <tr> 3403 <td>pearinstallerdep</td> 3404 <td>String</td> 3405 <td></td> 3406 <td>n/a</td> 3407 <td>Yes</td> 3408 </tr> 3409 </tbody> 3410 </table> 3411 </li> 3412 <li><p>mapping</p> 3413 <p> The <mapping> tag represents a complex data type. You can use nested 3414 <mapping> (and nested <element> with <element> tags) to 3415 represent the full complexity of the structure. Bear in mind that what you are 3416 creating will be mapped to an associative array that will be passed in via 3417 <code>PEAR_PackageFileMaintainer::setOptions()</code> . </p> 3418 <pre><mapping name="option_name"> 3553 3419 <element key="key_name" value="key_val"/> 3554 3420 <element key="key_name" value="key_val"/> 3555 3421 </mapping></pre> 3556 3557 <p>Available mappings and they structures:</p> 3558 <ul> 3559 <li>deps (optional) <br /> see <a 3560 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php">PEAR_PackageFileManager::addDependency()</a> 3561 for more info <br /> <br /> 3562 3563 <table> 3564 <thead> 3565 <tr> 3566 <th>Name</th> 3567 <th>Type</th> 3568 <th>Description</th> 3569 <th>Default</th> 3570 <th>Required</th> 3571 </tr> 3572 </thead> 3573 <tbody> 3574 <tr> 3575 <td>channel</td> 3576 <td>String</td> 3577 <td>Channel name, from package is.</td> 3578 <td>n/a</td> 3579 <td>Yes</td> 3580 </tr> 3581 <tr> 3582 <td>name</td> 3583 <td>String</td> 3584 <td>Package name in channel.</td> 3585 <td>n/a</td> 3586 <td>Yes</td> 3587 </tr> 3588 <tr> 3589 <td>version</td> 3590 <td>String</td> 3591 <td>Minimal version.</td> 3592 <td>n/a</td> 3593 <td>Yes</td> 3594 </tr> 3595 <tr> 3596 <td>max</td> 3597 <td>String</td> 3598 <td>Maximum version.</td> 3599 <td>Same as version.</td> 3600 <td>No</td> 3601 </tr> 3602 <tr> 3603 <td>recommended</td> 3604 <td>String</td> 3605 <td>Recommended version.</td> 3606 <td>Same as version.</td> 3607 <td>No</td> 3608 </tr> 3609 </tbody> 3610 </table> 3611 </li> 3612 <li>extdeps (optional) <br /> see <a 3613 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php">PEAR_PackageFileManager::addDependency()</a> 3614 for more info <br /> <br /> 3615 3616 <table> 3617 <thead> 3618 <tr> 3619 <th>Name</th> 3620 <th>Type</th> 3621 <th>Description</th> 3622 <th>Default</th> 3623 <th>Required</th> 3624 </tr> 3625 </thead> 3626 <tbody> 3627 <tr> 3628 <td>name</td> 3629 <td>String</td> 3630 <td>Package name.</td> 3631 <td>n/a</td> 3632 <td>Yes</td> 3633 </tr> 3634 <tr> 3635 <td>version</td> 3636 <td>String</td> 3637 <td>Minimal version.</td> 3638 <td>n/a</td> 3639 <td>Yes</td> 3640 </tr> 3641 <tr> 3642 <td>max</td> 3643 <td>String</td> 3644 <td>Maximum version.</td> 3645 <td>Same as version.</td> 3646 <td>No</td> 3647 </tr> 3648 <tr> 3649 <td>recommended</td> 3650 <td>String</td> 3651 <td>Recommended version.</td> 3652 <td>Same as version.</td> 3653 <td>No</td> 3654 </tr> 3655 </tbody> 3656 </table> 3657 </li> 3658 <li>maintainers (required at least one) <br /> see <a 3659 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addmaintainer.php">PEAR_PackageFileManager::addMaintainer()</a> 3660 for more info <br /> <br /> 3661 3662 <table> 3663 <thead> 3664 <tr> 3665 <th>Name</th> 3666 <th>Type</th> 3667 <th>Description</th> 3668 <th>Default</th> 3669 <th>Required</th> 3670 </tr> 3671 </thead> 3672 <tbody> 3673 <tr> 3674 <td>handle</td> 3675 <td>String</td> 3676 <td>User identifier in channel.</td> 3677 <td>n/a</td> 3678 <td>Yes</td> 3679 </tr> 3680 <tr> 3681 <td>name</td> 3682 <td>String</td> 3683 <td>Real name.</td> 3684 <td>n/a</td> 3685 <td>Yes</td> 3686 </tr> 3687 <tr> 3688 <td>email</td> 3689 <td>String</td> 3690 <td></td> 3691 <td>n/a</td> 3692 <td>Yes</td> 3693 </tr> 3694 <tr> 3695 <td>role</td> 3696 <td>String</td> 3697 <td>One from: lead, developer, contributor or helper.</td> 3698 <td>n/a</td> 3699 <td>Yes</td> 3700 </tr> 3701 </tbody> 3702 </table> 3703 </li> 3704 <li>replacements (optional) <br /> see <a 3705 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addreplacement.php">PEAR_PackageFileManager::addReplacement()</a> 3706 for more info <br /> <br /> 3707 3708 <table> 3709 <thead> 3710 <tr> 3711 <th>Name</th> 3712 <th>Type</th> 3713 <th>Description</th> 3714 <th>Default</th> 3715 <th>Required</th> 3716 </tr> 3717 </thead> 3718 <tbody> 3719 <tr> 3720 <td>path</td> 3721 <td>String</td> 3722 <td>Relative path of file.</td> 3723 <td>n/a</td> 3724 <td>Yes</td> 3725 </tr> 3726 <tr> 3727 <td>type</td> 3728 <td>String</td> 3729 <td>Variable type, either php-const, pear-config or 3730 package-info.</td> 3731 <td>n/a</td> 3732 <td>Yes</td> 3733 </tr> 3734 <tr> 3735 <td>from</td> 3736 <td>String</td> 3737 <td>Text to replace in the source file.</td> 3738 <td>n/a</td> 3739 <td>Yes</td> 3740 </tr> 3741 <tr> 3742 <td>to</td> 3743 <td>String</td> 3744 <td>Variable name to use for replacement.</td> 3745 <td>n/a</td> 3746 <td>Yes</td> 3747 </tr> 3748 </tbody> 3749 </table> 3750 </li> 3751 </ul> 3752 </li> 3753 <li> 3754 <p>role <br/> See <a href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addrole.php" target="_blank">PEAR_PackageFileManager::addRole</a> for more information.</p> 3755 3756 <p>Available options:</p> 3757 <table> 3758 <thead> 3759 <tr> 3760 <th>Name</th> 3761 <th>Type</th> 3762 <th>Description</th> 3763 <th>Default</th> 3764 <th>Required</th> 3765 </tr> 3766 </thead> 3767 <tbody> 3768 <tr> 3769 <td>extension</td> 3770 <td>String</td> 3771 <td>The file extension</td> 3772 <td>n/a</td> 3773 <td>Yes</td> 3774 </tr> 3775 <tr> 3776 <td>role</td> 3777 <td>String</td> 3778 <td>The file extension</td> 3779 <td>n/a</td> 3780 <td>Yes</td> 3781 </tr> 3782 </tbody> 3783 </table> 3784 </li> 3785 </ul> 3786 3787 3788 <h2> 3789 <a name="PharPackageTask"></a>PharPackageTask 3790 </h2> 3791 <p> 3792 <a href="http://www.php.net/manual/en/book.phar.php" target="_blank">Phar</a> 3793 packages generating with Phing. This task <strong>require <a 3794 href="http://pecl.php.net/package/phar" target="_blank">PECL's 3795 Phar</a> </strong> extension to be installed on your system. Phar is built-in in 3796 PHP from 5.3 version. 3797 </p> 3798 <h3>Attributes</h3> 3799 <table> 3800 <thead> 3801 <tr> 3802 <th>Name</th> 3803 <th>Type</th> 3804 <th>Description</th> 3805 <th>Default</th> 3806 <th>Required</th> 3807 </tr> 3808 </thead> 3809 <tbody> 3810 <tr> 3811 <td>basedir</td> 3812 <td>String</td> 3813 <td>Base directory, which will be deleted from each included 3814 file (from path). Paths with deleted <em>basedir</em> part are 3815 local paths in package.</td> 3816 <td>n/a</td> 3817 <td>Yes</td> 3818 </tr> 3819 <tr> 3820 <td>destfile</td> 3821 <td>String</td> 3822 <td>Destination (output) file. Will be recreated, if exists!</td> 3823 <td>n/a</td> 3824 <td>Yes</td> 3825 </tr> 3826 <tr> 3827 <td>compression</td> 3828 <td>String</td> 3829 <td>Compression type (gzip, bzip2, none) to apply to the packed 3830 files.</td> 3831 <td>none</td> 3832 <td>No</td> 3833 </tr> 3834 <tr> 3835 <td>webstub</td> 3836 <td>String</td> 3837 <td>Relative path within the phar package to run, if accessed 3838 through a web browser.</td> 3839 <td>n/a</td> 3840 <td>No</td> 3841 </tr> 3842 <tr> 3843 <td>clistub</td> 3844 <td>String</td> 3845 <td>Relative path within the phar package to run, if accessed 3846 on the command line.</td> 3847 <td>n/a</td> 3848 <td>No</td> 3849 </tr> 3850 <tr> 3851 <td>stub</td> 3852 <td>String</td> 3853 <td>A path to a php file that contains a custom stub</td> 3854 <td>n/a</td> 3855 <td>No</td> 3856 </tr> 3857 <tr> 3858 <td>alias</td> 3859 <td>String</td> 3860 <td>An alias to assign to the phar package</td> 3861 <td>n/a</td> 3862 <td>No</td> 3863 </tr> 3864 <tr> 3865 <td>signature</td> 3866 <td>String</td> 3867 <td>Signature algorithm (md5, sha1, sha256, sha512), used for 3868 this package.</td> 3869 <td>sha1</td> 3870 <td>No</td> 3871 </tr> 3872 </tbody> 3873 </table> 3874 <h3>Supported Nested Tags</h3> 3875 <ul> 3876 <li>fileset</li> 3877 <!-- 3422 <p>Available mappings and they structures:</p> 3423 <ul> 3424 <li>deps (optional) <br /> see <a 3425 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php" 3426 >PEAR_PackageFileManager::addDependency()</a> for more info <br /> 3427 <br /> 3428 <table> 3429 <thead> 3430 <tr> 3431 <th>Name</th> 3432 <th>Type</th> 3433 <th>Description</th> 3434 <th>Default</th> 3435 <th>Required</th> 3436 </tr> 3437 </thead> 3438 <tbody> 3439 <tr> 3440 <td>channel</td> 3441 <td>String</td> 3442 <td>Channel name, from package is.</td> 3443 <td>n/a</td> 3444 <td>Yes</td> 3445 </tr> 3446 <tr> 3447 <td>name</td> 3448 <td>String</td> 3449 <td>Package name in channel.</td> 3450 <td>n/a</td> 3451 <td>Yes</td> 3452 </tr> 3453 <tr> 3454 <td>version</td> 3455 <td>String</td> 3456 <td>Minimal version.</td> 3457 <td>n/a</td> 3458 <td>Yes</td> 3459 </tr> 3460 <tr> 3461 <td>max</td> 3462 <td>String</td> 3463 <td>Maximum version.</td> 3464 <td>Same as version.</td> 3465 <td>No</td> 3466 </tr> 3467 <tr> 3468 <td>recommended</td> 3469 <td>String</td> 3470 <td>Recommended version.</td> 3471 <td>Same as version.</td> 3472 <td>No</td> 3473 </tr> 3474 </tbody> 3475 </table> 3476 </li> 3477 <li>extdeps (optional) <br /> see <a 3478 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php" 3479 >PEAR_PackageFileManager::addDependency()</a> for more info <br /> 3480 <br /> 3481 <table> 3482 <thead> 3483 <tr> 3484 <th>Name</th> 3485 <th>Type</th> 3486 <th>Description</th> 3487 <th>Default</th> 3488 <th>Required</th> 3489 </tr> 3490 </thead> 3491 <tbody> 3492 <tr> 3493 <td>name</td> 3494 <td>String</td> 3495 <td>Package name.</td> 3496 <td>n/a</td> 3497 <td>Yes</td> 3498 </tr> 3499 <tr> 3500 <td>version</td> 3501 <td>String</td> 3502 <td>Minimal version.</td> 3503 <td>n/a</td> 3504 <td>Yes</td> 3505 </tr> 3506 <tr> 3507 <td>max</td> 3508 <td>String</td> 3509 <td>Maximum version.</td> 3510 <td>Same as version.</td> 3511 <td>No</td> 3512 </tr> 3513 <tr> 3514 <td>recommended</td> 3515 <td>String</td> 3516 <td>Recommended version.</td> 3517 <td>Same as version.</td> 3518 <td>No</td> 3519 </tr> 3520 </tbody> 3521 </table> 3522 </li> 3523 <li>maintainers (required at least one) <br /> see <a 3524 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addmaintainer.php" 3525 >PEAR_PackageFileManager::addMaintainer()</a> for more info <br /> 3526 <br /> 3527 <table> 3528 <thead> 3529 <tr> 3530 <th>Name</th> 3531 <th>Type</th> 3532 <th>Description</th> 3533 <th>Default</th> 3534 <th>Required</th> 3535 </tr> 3536 </thead> 3537 <tbody> 3538 <tr> 3539 <td>handle</td> 3540 <td>String</td> 3541 <td>User identifier in channel.</td> 3542 <td>n/a</td> 3543 <td>Yes</td> 3544 </tr> 3545 <tr> 3546 <td>name</td> 3547 <td>String</td> 3548 <td>Real name.</td> 3549 <td>n/a</td> 3550 <td>Yes</td> 3551 </tr> 3552 <tr> 3553 <td>email</td> 3554 <td>String</td> 3555 <td></td> 3556 <td>n/a</td> 3557 <td>Yes</td> 3558 </tr> 3559 <tr> 3560 <td>role</td> 3561 <td>String</td> 3562 <td>One from: lead, developer, contributor or helper.</td> 3563 <td>n/a</td> 3564 <td>Yes</td> 3565 </tr> 3566 </tbody> 3567 </table> 3568 </li> 3569 <li>replacements (optional) <br /> see <a 3570 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addreplacement.php" 3571 >PEAR_PackageFileManager::addReplacement()</a> for more info <br /> 3572 <br /> 3573 <table> 3574 <thead> 3575 <tr> 3576 <th>Name</th> 3577 <th>Type</th> 3578 <th>Description</th> 3579 <th>Default</th> 3580 <th>Required</th> 3581 </tr> 3582 </thead> 3583 <tbody> 3584 <tr> 3585 <td>path</td> 3586 <td>String</td> 3587 <td>Relative path of file.</td> 3588 <td>n/a</td> 3589 <td>Yes</td> 3590 </tr> 3591 <tr> 3592 <td>type</td> 3593 <td>String</td> 3594 <td>Variable type, either php-const, pear-config or 3595 package-info.</td> 3596 <td>n/a</td> 3597 <td>Yes</td> 3598 </tr> 3599 <tr> 3600 <td>from</td> 3601 <td>String</td> 3602 <td>Text to replace in the source file.</td> 3603 <td>n/a</td> 3604 <td>Yes</td> 3605 </tr> 3606 <tr> 3607 <td>to</td> 3608 <td>String</td> 3609 <td>Variable name to use for replacement.</td> 3610 <td>n/a</td> 3611 <td>Yes</td> 3612 </tr> 3613 </tbody> 3614 </table> 3615 </li> 3616 </ul> 3617 </li> 3618 <li> 3619 <p>role <br /> See <a 3620 href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addrole.php" 3621 target="_blank">PEAR_PackageFileManager::addRole</a> for more 3622 information.</p> 3623 <p>Available options:</p> 3624 <table> 3625 <thead> 3626 <tr> 3627 <th>Name</th> 3628 <th>Type</th> 3629 <th>Description</th> 3630 <th>Default</th> 3631 <th>Required</th> 3632 </tr> 3633 </thead> 3634 <tbody> 3635 <tr> 3636 <td>extension</td> 3637 <td>String</td> 3638 <td>The file extension</td> 3639 <td>n/a</td> 3640 <td>Yes</td> 3641 </tr> 3642 <tr> 3643 <td>role</td> 3644 <td>String</td> 3645 <td>The file extension</td> 3646 <td>n/a</td> 3647 <td>Yes</td> 3648 </tr> 3649 </tbody> 3650 </table> 3651 </li> 3652 </ul> 3653 <h2> 3654 <a name="PharPackageTask"></a>PharPackageTask </h2> 3655 <p> 3656 <a href="http://www.php.net/manual/en/book.phar.php" target="_blank">Phar</a> packages 3657 generating with Phing. This task <strong>require <a 3658 href="http://pecl.php.net/package/phar" target="_blank">PECL's Phar</a> 3659 </strong> extension to be installed on your system. Phar is built-in in PHP from 5.3 3660 version. </p> 3661 <h3>Attributes</h3> 3662 <table> 3663 <thead> 3664 <tr> 3665 <th>Name</th> 3666 <th>Type</th> 3667 <th>Description</th> 3668 <th>Default</th> 3669 <th>Required</th> 3670 </tr> 3671 </thead> 3672 <tbody> 3673 <tr> 3674 <td>basedir</td> 3675 <td>String</td> 3676 <td>Base directory, which will be deleted from each included file (from path). 3677 Paths with deleted <em>basedir</em> part are local paths in package.</td> 3678 <td>n/a</td> 3679 <td>Yes</td> 3680 </tr> 3681 <tr> 3682 <td>destfile</td> 3683 <td>String</td> 3684 <td>Destination (output) file. Will be recreated, if exists!</td> 3685 <td>n/a</td> 3686 <td>Yes</td> 3687 </tr> 3688 <tr> 3689 <td>compression</td> 3690 <td>String</td> 3691 <td>Compression type (gzip, bzip2, none) to apply to the packed files.</td> 3692 <td>none</td> 3693 <td>No</td> 3694 </tr> 3695 <tr> 3696 <td>webstub</td> 3697 <td>String</td> 3698 <td>Relative path within the phar package to run, if accessed through a web 3699 browser.</td> 3700 <td>n/a</td> 3701 <td>No</td> 3702 </tr> 3703 <tr> 3704 <td>clistub</td> 3705 <td>String</td> 3706 <td>Relative path within the phar package to run, if accessed on the command 3707 line.</td> 3708 <td>n/a</td> 3709 <td>No</td> 3710 </tr> 3711 <tr> 3712 <td>stub</td> 3713 <td>String</td> 3714 <td>A path to a php file that contains a custom stub</td> 3715 <td>n/a</td> 3716 <td>No</td> 3717 </tr> 3718 <tr> 3719 <td>alias</td> 3720 <td>String</td> 3721 <td>An alias to assign to the phar package</td> 3722 <td>n/a</td> 3723 <td>No</td> 3724 </tr> 3725 <tr> 3726 <td>signature</td> 3727 <td>String</td> 3728 <td>Signature algorithm (md5, sha1, sha256, sha512), used for this package.</td> 3729 <td>sha1</td> 3730 <td>No</td> 3731 </tr> 3732 </tbody> 3733 </table> 3734 <h3>Supported Nested Tags</h3> 3735 <ul> 3736 <li>fileset</li> 3737 <!-- 3878 3738 TODO Describe metadata element. 3879 3739 --> 3880 <li>metadata 3881 <p /></li> 3882 </ul> 3883 <h3>Examples</h3> 3884 <p>Sample build command:</p> 3885 <pre><pharpackage 3740 <li>metadata <p></p></li> 3741 </ul> 3742 <h3>Examples</h3> 3743 <p>Sample build command:</p> 3744 <pre><pharpackage 3886 3745 destfile="./build/package.phar" 3887 3746 basedir="./"> … … 3899 3758 </pharpackage> 3900 3759 </pre> 3901 <h2> 3902 <a name="PhkPackageTask"></a>PhkPackageTask 3903 </h2> 3904 <p> 3905 This task runs PHK_Creator.phk to build PHK-package. Learn more about 3906 build process in <a 3907 href="http://phk.tekwire.net/joomla/support/doc/builders_guide.htm" 3908 target="_blank">PHK Builder's Guide</a>. 3909 </p> 3910 <h3>Attributes</h3> 3911 <table> 3912 <thead> 3913 <tr> 3914 <th>Name</th> 3915 <th>Type</th> 3916 <th>Description</th> 3917 <th>Default</th> 3918 <th>Required</th> 3919 </tr> 3920 </thead> 3921 <tbody> 3922 <tr> 3923 <td>phkcreatorpath</td> 3924 <td>String</td> 3925 <td>Path to PHK_Creator.phk.</td> 3926 <td>n/a</td> 3927 <td>Yes</td> 3928 </tr> 3929 <tr> 3930 <td>inputdirectory</td> 3931 <td>String</td> 3932 <td>Path to directory, that will be packed.</td> 3933 <td>n/a</td> 3934 <td>Yes</td> 3935 </tr> 3936 <tr> 3937 <td>outputfile</td> 3938 <td>String</td> 3939 <td>Output PHK-file. Directory, where file will be stored, must 3940 exist!</td> 3941 <td>n/a</td> 3942 <td>Yes</td> 3943 </tr> 3944 <tr> 3945 <td>compress</td> 3946 <td>String</td> 3947 <td>Compression type (gzip, bzip2, none) to apply to the packed 3948 files.</td> 3949 <td>none</td> 3950 <td>No</td> 3951 </tr> 3952 <tr> 3953 <td>strip</td> 3954 <td>Boolean</td> 3955 <td>When true, PHP source file(s) are stripped (filtered 3956 through php_strip_whitespace()) before being stored into the 3957 archive.</td> 3958 <td>false</td> 3959 <td>No</td> 3960 </tr> 3961 <tr> 3962 <td>name</td> 3963 <td>String</td> 3964 <td>The package's name (Information only).</td> 3965 <td>n/a</td> 3966 <td>No</td> 3967 </tr> 3968 <tr> 3969 <td>webrunscript</td> 3970 <td>String</td> 3971 <td>The script to run in web direct access mode. Subfile path.</td> 3972 <td>n/a</td> 3973 <td>No</td> 3974 </tr> 3975 <tr> 3976 <td>crccheck</td> 3977 <td>Boolean</td> 3978 <td>If true, a CRC check will be forced every time the package 3979 is mounted.</td> 3980 <td>false</td> 3981 <td>No</td> 3982 </tr> 3983 </tbody> 3984 </table> 3985 <h3>Supported Nested Tags</h3> 3986 <ul> 3987 <li>webaccess 3988 <p> 3989 Collection of <em>path</em> tags (see example below), that will be 3990 visible outside package in web mode. 3991 </p></li> 3992 </ul> 3993 <h3>Examples</h3> 3994 <p>Sample build command:</p> 3995 <pre><phkpackage 3760 <h2> 3761 <a name="PhkPackageTask"></a>PhkPackageTask </h2> 3762 <p> This task runs PHK_Creator.phk to build PHK-package. Learn more about build process in 3763 <a href="http://phk.tekwire.net/joomla/support/doc/builders_guide.htm" 3764 target="_blank">PHK Builder's Guide</a>. </p> 3765 <h3>Attributes</h3> 3766 <table> 3767 <thead> 3768 <tr> 3769 <th>Name</th> 3770 <th>Type</th> 3771 <th>Description</th> 3772 <th>Default</th> 3773 <th>Required</th> 3774 </tr> 3775 </thead> 3776 <tbody> 3777 <tr> 3778 <td>phkcreatorpath</td> 3779 <td>String</td> 3780 <td>Path to PHK_Creator.phk.</td> 3781 <td>n/a</td> 3782 <td>Yes</td> 3783 </tr> 3784 <tr> 3785 <td>inputdirectory</td> 3786 <td>String</td> 3787 <td>Path to directory, that will be packed.</td> 3788 <td>n/a</td> 3789 <td>Yes</td> 3790 </tr> 3791 <tr> 3792 <td>outputfile</td> 3793 <td>String</td> 3794 <td>Output PHK-file. Directory, where file will be stored, must exist!</td> 3795 <td>n/a</td> 3796 <td>Yes</td> 3797 </tr> 3798 <tr> 3799 <td>compress</td> 3800 <td>String</td> 3801 <td>Compression type (gzip, bzip2, none) to apply to the packed files.</td> 3802 <td>none</td> 3803 <td>No</td> 3804 </tr> 3805 <tr> 3806 <td>strip</td> 3807 <td>Boolean</td> 3808 <td>When true, PHP source file(s) are stripped (filtered through 3809 php_strip_whitespace()) before being stored into the archive.</td> 3810 <td>false</td> 3811 <td>No</td> 3812 </tr> 3813 <tr> 3814 <td>name</td> 3815 <td>String</td> 3816 <td>The package's name (Information only).</td> 3817 <td>n/a</td> 3818 <td>No</td> 3819 </tr> 3820 <tr> 3821 <td>webrunscript</td> 3822 <td>String</td> 3823 <td>The script to run in web direct access mode. Subfile path.</td> 3824 <td>n/a</td> 3825 <td>No</td> 3826 </tr> 3827 <tr> 3828 <td>crccheck</td> 3829 <td>Boolean</td> 3830 <td>If true, a CRC check will be forced every time the package is mounted.</td> 3831 <td>false</td> 3832 <td>No</td> 3833 </tr> 3834 </tbody> 3835 </table> 3836 <h3>Supported Nested Tags</h3> 3837 <ul> 3838 <li>webaccess <p> Collection of <em>path</em> tags (see example below), that will be 3839 visible outside package in web mode. </p></li> 3840 </ul> 3841 <h3>Examples</h3> 3842 <p>Sample build command:</p> 3843 <pre><phkpackage 3996 3844 phkcreatorpath="/path/to/PHK_Creator.phk" 3997 3845 inputdirectory="src" … … 4006 3854 </phkpackage> 4007 3855 </pre> 4008 <h2> 4009 <a name="PhpCodeSnifferTask"></a>PhpCodeSnifferTask 4010 </h2> 4011 <p> 4012 This task runs <a href="http://pear.php.net/package/PHP_CodeSniffer" 4013 target="_blank">PHP_CodeSniffer</a> to detect violations of a defined 4014 set of coding standards. 4015 </p> 4016 <h3>Attributes</h3> 4017 <table> 4018 <thead> 4019 <tr> 4020 <th>Name</th> 4021 <th>Type</th> 4022 <th>Description</th> 4023 <th>Default</th> 4024 <th>Required</th> 4025 </tr> 4026 </thead> 4027 <tbody> 4028 <tr> 4029 <td>standard</td> 4030 <td>String</td> 4031 <td>The name of the standard to check for.</td> 4032 <td>Generic</td> 4033 <td>No</td> 4034 </tr> 4035 <tr> 4036 <td>format</td> 4037 <td>String</td> 4038 <td>The output format. The <em>default</em> format is specified 4039 in the task itself. Additionally all report formats of 4040 PHP_CodeSniffer can be choosen (ex. <em>checkstyle</em>, <em>full</em>, 4041 <em>summary</em>, ...).</td> 4042 <td>default</td> 4043 <td>No<br />Ignored if nested <em>formatter</em> elements are 4044 supplied.</td> 4045 </tr> 4046 <tr> 4047 <td>showSniffs</td> 4048 <td>Boolean</td> 4049 <td>Print the list of used sniffs.</td> 4050 <td>false</td> 4051 <td>No</td> 4052 </tr> 4053 <tr> 4054 <td>showWarnings</td> 4055 <td>Boolean</td> 4056 <td>Print warnings.</td> 4057 <td>true</td> 4058 <td>No</td> 4059 </tr> 4060 <tr> 4061 <td>showSources</td> 4062 <td>Boolean</td> 4063 <td>Flag that determines whether to show sources or not.</td> 4064 <td>true</td> 4065 <td>No</td> 4066 </tr> 4067 <tr> 4068 <td>docGenerator</td> 4069 <td>String</td> 4070 <td>The name of the doc generator (HTML, Text).</td> 4071 <td>n/a</td> 4072 <td>No</td> 4073 </tr> 4074 <tr> 4075 <td>docFile</td> 4076 <td>String</td> 4077 <td>Path to write output file to. If not set documentation will 4078 be written to STDOUT when <em>docGenerator</em> is set.</td> 4079 <td>n/a</td> 4080 <td>No</td> 4081 </tr> 4082 <tr> 4083 <td>file</td> 4084 <td>String</td> 4085 <td>The file or folder to check (usually the nested tag <em>fileset</em> 4086 is used instead).</td> 4087 <td>false</td> 4088 <td>Either this attribute or the nested tag <em>fileset</em> is 4089 required.</td> 4090 </tr> 4091 <tr> 4092 <td>sniffs</td> 4093 <td>String</td> 4094 <td>The list of allowed sniffs (separated by space, comma or 4095 semicolon). The sniffs must be part of the choosen standard.</td> 4096 <td>n/a</td> 4097 <td>No</td> 4098 </tr> 4099 <tr> 4100 <td>verbosity</td> 4101 <td>Integer</td> 4102 <td>The verbosity level of CodeSniffer where level 1 prints 4103 progress information and level 2 prints developer debug 4104 information.</td> 4105 <td>0</td> 4106 <td>No</td> 4107 </tr> 4108 <tr> 4109 <td>encoding</td> 4110 <td>String</td> 4111 <td>The encoding of the files to check</td> 4112 <td>iso-8859-1</td> 4113 <td>No</td> 4114 </tr> 4115 <tr> 4116 <td>tabWidth</td> 4117 <td>Integer</td> 4118 <td>Replaces tabs with the given number of spaces. If zero no 4119 replacing is done.</td> 4120 <td>0</td> 4121 <td>No</td> 4122 </tr> 4123 <tr> 4124 <td>reportWidth</td> 4125 <td>Integer</td> 4126 <td>The max. width for the report.</td> 4127 <td>80</td> 4128 <td>No</td> 4129 </tr> 4130 <tr> 4131 <td>allowedFileExtensions</td> 4132 <td>String</td> 4133 <td>The allowed file extensions (separated by space, comma or 4134 semicolon) when a directory is specified in the <em>file</em> 4135 attribute.</td> 4136 <td>php</td> 4137 <td>No</td> 4138 </tr> 4139 <tr> 4140 <td>ignorePatterns</td> 4141 <td>String</td> 4142 <td>The patterns to ignore files and folders (separated by 4143 space, comma or semicolon) when a directory is specified in the <em>file</em> 4144 attribute.</td> 4145 <td>n/a</td> 4146 <td>No</td> 4147 </tr> 4148 <tr> 4149 <td>noSubdirectories</td> 4150 <td>Boolean</td> 4151 <td>Do not recurse into subdirectories when a directory is 4152 specified in the <em>file</em> attribute.</td> 4153 <td>false</td> 4154 <td>No</td> 4155 </tr> 4156 <tr> 4157 <td>haltonerror</td> 4158 <td>Boolean</td> 4159 <td>Stop the build process if errors occurred during during the 4160 run.</td> 4161 <td>false</td> 4162 <td>No</td> 4163 </tr> 4164 <tr> 4165 <td>haltonwarning</td> 4166 <td>Boolean</td> 4167 <td>Stop the build process if warnings occurred during the run.</td> 4168 <td>false</td> 4169 <td>No</td> 4170 </tr> 4171 <tr> 4172 <td>skipversioncheck</td> 4173 <td>Boolean</td> 4174 <td>Skips the version check when the task starts.</td> 4175 <td>false</td> 4176 <td>No</td> 4177 </tr> 4178 </tbody> 4179 </table> 4180 <h3>Supported Nested Tags</h3> 4181 <ul> 4182 <li>fileset 4183 <p> 4184 Either this nested tag or the attribute <em>file</em> is required. 4185 </p></li> 4186 <li>config 4187 <p>The configuration parameters which are usually loaded from the 4188 CodeSniffer.conf can be set.</p> 4189 <h3>Attributes</h3> 4190 <table> 4191 <thead> 4192 <tr> 4193 <th>Name</th> 4194 <th>Type</th> 4195 <th>Description</th> 4196 <th>Default</th> 4197 <th>Required</th> 4198 </tr> 4199 </thead> 4200 <tbody> 4201 <tr> 4202 <td>name</td> 4203 <td>String</td> 4204 <td>Name of the configuration parameter.</td> 4205 <td>n/a</td> 4206 <td>Yes</td> 4207 </tr> 4208 <tr> 4209 <td>value</td> 4210 <td>String</td> 4211 <td>Value of the configuration parameter.</td> 4212 <td>n/a</td> 4213 <td>Yes</td> 4214 </tr> 4215 </tbody> 4216 </table></li> 4217 <li>formatter 4218 <p> 4219 The results of the tests can be printed in different formats. Output 4220 will always be sent to a file, unless you set the <em>usefile</em> 4221 attribute to <em>false.</em> 4222 </p> 4223 <h3>Attributes</h3> 4224 <table> 4225 <thead> 4226 <tr> 4227 <th>Name</th> 4228 <th>Type</th> 4229 <th>Description</th> 4230 <th>Default</th> 4231 <th>Required</th> 4232 </tr> 4233 </thead> 4234 <tbody> 4235 <tr> 4236 <td>type</td> 4237 <td>String</td> 4238 <td>The output format. Accepts the the same values as the <em>format</em> 4239 attribute (<em>default</em>, <em>xml</em>, <em>checkstyle</em>, <em>csv</em>, 4240 <em>report</em>, <em>summary</em> & <em>doc</em>).</td> 4241 <td>n/a</td> 4242 <td>Yes</td> 4243 </tr> 4244 <tr> 4245 <td>usefile</td> 4246 <td>Boolean</td> 4247 <td>Boolean that determines whether output should be sent to 4248 a file.</td> 4249 <td>true</td> 4250 <td>No</td> 4251 </tr> 4252 <tr> 4253 <td>outfile</td> 4254 <td>String</td> 4255 <td>Path to write output file to.</td> 4256 <td>n/a</td> 4257 <td>Yes, if <em>usefile</em> is <em>true</em>.</td> 4258 </tr> 4259 </tbody> 4260 </table></li> 4261 </ul> 4262 <h3>Examples</h3> 4263 <p> 4264 Checks all files in the directory <em>file</em> matching the allowed 4265 file extension with the <em>PEAR</em> standard and prints the <em>summary</em> 4266 report without warnings. 4267 </p> 4268 <pre><phpcodesniffer 3856 <h2> 3857 <a name="PhpCodeSnifferTask"></a>PhpCodeSnifferTask </h2> 3858 <p> This task runs <a href="http://pear.php.net/package/PHP_CodeSniffer" target="_blank" 3859 >PHP_CodeSniffer</a> to detect violations of a defined set of coding standards. </p> 3860 <h3>Attributes</h3> 3861 <table> 3862 <thead> 3863 <tr> 3864 <th>Name</th> 3865 <th>Type</th> 3866 <th>Description</th> 3867 <th>Default</th> 3868 <th>Required</th> 3869 </tr> 3870 </thead> 3871 <tbody> 3872 <tr> 3873 <td>standard</td> 3874 <td>String</td> 3875 <td>The name of the standard to check for.</td> 3876 <td>Generic</td> 3877 <td>No</td> 3878 </tr> 3879 <tr> 3880 <td>format</td> 3881 <td>String</td> 3882 <td>The output format. The <em>default</em> format is specified in the task 3883 itself. Additionally all report formats of PHP_CodeSniffer can be choosen 3884 (ex. <em>checkstyle</em>, <em>full</em>, <em>summary</em>, ...).</td> 3885 <td>default</td> 3886 <td>No<br />Ignored if nested <em>formatter</em> elements are supplied.</td> 3887 </tr> 3888 <tr> 3889 <td>showSniffs</td> 3890 <td>Boolean</td> 3891 <td>Print the list of used sniffs.</td> 3892 <td>false</td> 3893 <td>No</td> 3894 </tr> 3895 <tr> 3896 <td>showWarnings</td> 3897 <td>Boolean</td> 3898 <td>Print warnings.</td> 3899 <td>true</td> 3900 <td>No</td> 3901 </tr> 3902 <tr> 3903 <td>showSources</td> 3904 <td>Boolean</td> 3905 <td>Flag that determines whether to show sources or not.</td> 3906 <td>true</td> 3907 <td>No</td> 3908 </tr> 3909 <tr> 3910 <td>docGenerator</td> 3911 <td>String</td> 3912 <td>The name of the doc generator (HTML, Text).</td> 3913 <td>n/a</td> 3914 <td>No</td> 3915 </tr> 3916 <tr> 3917 <td>docFile</td> 3918 <td>String</td> 3919 <td>Path to write output file to. If not set documentation will be written to 3920 STDOUT when <em>docGenerator</em> is set.</td> 3921 <td>n/a</td> 3922 <td>No</td> 3923 </tr> 3924 <tr> 3925 <td>file</td> 3926 <td>String</td> 3927 <td>The file or folder to check (usually the nested tag <em>fileset</em> is used 3928 instead).</td> 3929 <td>false</td> 3930 <td>Either this attribute or the nested tag <em>fileset</em> is required.</td> 3931 </tr> 3932 <tr> 3933 <td>sniffs</td> 3934 <td>String</td> 3935 <td>The list of allowed sniffs (separated by space, comma or semicolon). The 3936 sniffs must be part of the choosen standard.</td> 3937 <td>n/a</td> 3938 <td>No</td> 3939 </tr> 3940 <tr> 3941 <td>verbosity</td> 3942 <td>Integer</td> 3943 <td>The verbosity level of CodeSniffer where level 1 prints progress information 3944 and level 2 prints developer debug information.</td> 3945 <td>0</td> 3946 <td>No</td> 3947 </tr> 3948 <tr> 3949 <td>encoding</td> 3950 <td>String</td> 3951 <td>The encoding of the files to check</td> 3952 <td>iso-8859-1</td> 3953 <td>No</td> 3954 </tr> 3955 <tr> 3956 <td>tabWidth</td> 3957 <td>Integer</td> 3958 <td>Replaces tabs with the given number of spaces. If zero no replacing is 3959 done.</td> 3960 <td>0</td> 3961 <td>No</td> 3962 </tr> 3963 <tr> 3964 <td>reportWidth</td> 3965 <td>Integer</td> 3966 <td>The max. width for the report.</td> 3967 <td>80</td> 3968 <td>No</td> 3969 </tr> 3970 <tr> 3971 <td>allowedFileExtensions</td> 3972 <td>String</td> 3973 <td>The allowed file extensions (separated by space, comma or semicolon) when a 3974 directory is specified in the <em>file</em> attribute.</td> 3975 <td>php</td> 3976 <td>No</td> 3977 </tr> 3978 <tr> 3979 <td>ignorePatterns</td> 3980 <td>String</td> 3981 <td>The patterns to ignore files and folders (separated by space, comma or 3982 semicolon) when a directory is specified in the <em>file</em> 3983 attribute.</td> 3984 <td>n/a</td> 3985 <td>No</td> 3986 </tr> 3987 <tr> 3988 <td>noSubdirectories</td> 3989 <td>Boolean</td> 3990 <td>Do not recurse into subdirectories when a directory is specified in the 3991 <em>file</em> attribute.</td> 3992 <td>false</td> 3993 <td>No</td> 3994 </tr> 3995 <tr> 3996 <td>haltonerror</td> 3997 <td>Boolean</td> 3998 <td>Stop the build process if errors occurred during during the run.</td> 3999 <td>false</td> 4000 <td>No</td> 4001 </tr> 4002 <tr> 4003 <td>haltonwarning</td> 4004 <td>Boolean</td> 4005 <td>Stop the build process if warnings occurred during the run.</td> 4006 <td>false</td> 4007 <td>No</td> 4008 </tr> 4009 <tr> 4010 <td>skipversioncheck</td> 4011 <td>Boolean</td> 4012 <td>Skips the version check when the task starts.</td> 4013 <td>false</td> 4014 <td>No</td> 4015 </tr> 4016 </tbody> 4017 </table> 4018 <h3>Supported Nested Tags</h3> 4019 <ul> 4020 <li>fileset <p> Either this nested tag or the attribute <em>file</em> is required. 4021 </p></li> 4022 <li>config <p>The configuration parameters which are usually loaded from the 4023 CodeSniffer.conf can be set.</p> 4024 <h3>Attributes</h3> 4025 <table> 4026 <thead> 4027 <tr> 4028 <th>Name</th> 4029 <th>Type</th> 4030 <th>Description</th> 4031 <th>Default</th> 4032 <th>Required</th> 4033 </tr> 4034 </thead> 4035 <tbody> 4036 <tr> 4037 <td>name</td> 4038 <td>String</td> 4039 <td>Name of the configuration parameter.</td> 4040 <td>n/a</td> 4041 <td>Yes</td> 4042 </tr> 4043 <tr> 4044 <td>value</td> 4045 <td>String</td> 4046 <td>Value of the configuration parameter.</td> 4047 <td>n/a</td> 4048 <td>Yes</td> 4049 </tr> 4050 </tbody> 4051 </table></li> 4052 <li>formatter <p> The results of the tests can be printed in different formats. Output 4053 will always be sent to a file, unless you set the <em>usefile</em> attribute to 4054 <em>false.</em> 4055 </p> 4056 <h3>Attributes</h3> 4057 <table> 4058 <thead> 4059 <tr> 4060 <th>Name</th> 4061 <th>Type</th> 4062 <th>Description</th> 4063 <th>Default</th> 4064 <th>Required</th> 4065 </tr> 4066 </thead> 4067 <tbody> 4068 <tr> 4069 <td>type</td> 4070 <td>String</td> 4071 <td>The output format. Accepts the the same values as the 4072 <em>format</em> attribute (<em>default</em>, <em>xml</em>, 4073 <em>checkstyle</em>, <em>csv</em>, <em>report</em>, 4074 <em>summary</em> & <em>doc</em>).</td> 4075 <td>n/a</td> 4076 <td>Yes</td> 4077 </tr> 4078 <tr> 4079 <td>usefile</td> 4080 <td>Boolean</td> 4081 <td>Boolean that determines whether output should be sent to a 4082 file.</td> 4083 <td>true</td> 4084 <td>No</td> 4085 </tr> 4086 <tr> 4087 <td>outfile</td> 4088 <td>String</td> 4089 <td>Path to write output file to.</td> 4090 <td>n/a</td> 4091 <td>Yes, if <em>usefile</em> is <em>true</em>.</td> 4092 </tr> 4093 </tbody> 4094 </table></li> 4095 </ul> 4096 <h3>Examples</h3> 4097 <p> Checks all files in the directory <em>file</em> matching the allowed file extension with 4098 the <em>PEAR</em> standard and prints the <em>summary</em> report without warnings. </p> 4099 <pre><phpcodesniffer 4269 4100 standard="PEAR" 4270 4101 format="summary" … … 4272 4103 allowedFileExtensions="php php5 inc"/> 4273 4104 </pre> 4274 <p> 4275 Checks all matching files in the <em>fileset</em> with the <em>Zend</em> 4276 standard, sets the <em>zend_ca_path</em> configuration which may be 4277 required by one of the sniffs, prints a list of used sniffs and prints 4278 the <em>default</em> report with warnings and the <em>checkstyle</em> 4279 report to <em>/path/to/checkstyle.xml</em>. 4280 </p> 4281 <pre><phpcodesniffer 4105 <p> Checks all matching files in the <em>fileset</em> with the <em>Zend</em> standard, sets 4106 the <em>zend_ca_path</em> configuration which may be required by one of the sniffs, 4107 prints a list of used sniffs and prints the <em>default</em> report with warnings and 4108 the <em>checkstyle</em> report to <em>/path/to/checkstyle.xml</em>. </p> 4109 <pre><phpcodesniffer 4282 4110 standard="Zend" 4283 4111 showSniffs="true" … … 4291 4119 </phpcodesniffer> 4292 4120 </pre> 4293 <p> 4294 Checks all files in the directory <em>file</em> with the <em>PEAR</em> 4295 standard and prints the <em>checkstyle</em> report without warnings. 4296 It also generates the documentation for the selected coding standard 4297 and writes it to the given file. 4298 </p> 4299 <pre><phpcodesniffer 4121 <p> Checks all files in the directory <em>file</em> with the <em>PEAR</em> standard and 4122 prints the <em>checkstyle</em> report without warnings. It also generates the 4123 documentation for the selected coding standard and writes it to the given file. </p> 4124 <pre><phpcodesniffer 4300 4125 standard="PEAR" 4301 4126 file="/path/to/source-files" … … 4305 4130 </phpcodesniffer> 4306 4131 </pre> 4307 4308 <h2> 4309 <a name="PHPCPDTask"></a>PHPCPDTask 4310 </h2> 4311 <p> 4312 This task runs <a href="http://github.com/sebastianbergmann/phpcpd/" 4313 target="_blank">phpcpd</a>, a Copy/Paste Detector (CPD) for PHP Code. 4314 You need an installed version of this software to use this task. 4315 </p> 4316 <h3>Attributes</h3> 4317 <table> 4318 <thead> 4319 <tr> 4320 <th>Name</th> 4321 <th>Type</th> 4322 <th>Description</th> 4323 <th>Default</th> 4324 <th>Required</th> 4325 </tr> 4326 </thead> 4327 <tbody> 4328 <tr> 4329 <td>file</td> 4330 <td>String</td> 4331 <td>Path to source file or path</td> 4332 <td>n/a</td> 4333 <td>No</td> 4334 </tr> 4335 <tr> 4336 <td>minTokens</td> 4337 <td>Integer</td> 4338 <td>Sets the minimum number of identical tokens (default: 70)</td> 4339 <td>70</td> 4340 <td>No</td> 4341 </tr> 4342 <tr> 4343 <td>minLines</td> 4344 <td>Integer</td> 4345 <td>Sets the minimum number of identical lines (default: 5)</td> 4346 <td>5</td> 4347 <td>No</td> 4348 </tr> 4349 <tr> 4350 <td>format</td> 4351 <td>String</td> 4352 <td>The format for the report when no nested formatter is used.</td> 4353 <td>default</td> 4354 <td>No</td> 4355 </tr> 4356 </tbody> 4357 </table> 4358 <h3>Supported Nested Tags</h3> 4359 <ul> 4360 <li>fileset 4361 <p> 4362 This nested tag is required when the <em>file</em> attribute is not 4363 set. 4364 </p></li> 4365 <li>formatter 4366 <p> 4367 The results of the copy/paste scan can be printed in different 4368 formats. Output will always be sent to a file, unless you set the <em>usefile</em> 4369 attribute to <em>false</em>. 4370 </p> 4371 <h3>Attributes</h3> 4372 <table> 4373 <thead> 4374 <tr> 4375 <th>Name</th> 4376 <th>Type</th> 4377 <th>Description</th> 4378 <th>Default</th> 4379 <th>Required</th> 4380 </tr> 4381 </thead> 4382 <tbody> 4383 <tr> 4384 <td>type</td> 4385 <td>String</td> 4386 <td>The output format. Accepts the the same values as the <em>format</em> 4387 attribute (<em>default</em>, <em>pmd</em>).</td> 4388 <td>n/a</td> 4389 <td>Yes</td> 4390 </tr> 4391 <tr> 4392 <td>useFile</td> 4393 <td>Boolean</td> 4394 <td>Flag that determines whether output should be sent to a 4395 file or not.</td> 4396 <td>true</td> 4397 <td>No</td> 4398 </tr> 4399 <tr> 4400 <td>outfile</td> 4401 <td>String</td> 4402 <td>Path to write output file to.</td> 4403 <td>n/a</td> 4404 <td>Yes</td> 4405 </tr> 4406 </tbody> 4407 </table></li> 4408 </ul> 4409 <h3>Examples</h3> 4410 <pre> 4132 <h2> 4133 <a name="PHPCPDTask"></a>PHPCPDTask </h2> 4134 <p> This task runs <a href="http://github.com/sebastianbergmann/phpcpd/" target="_blank" 4135 >phpcpd</a>, a Copy/Paste Detector (CPD) for PHP Code. You need an installed version 4136 of this software to use this task. </p> 4137 <h3>Attributes</h3> 4138 <table> 4139 <thead> 4140 <tr> 4141 <th>Name</th> 4142 <th>Type</th> 4143 <th>Description</th> 4144 <th>Default</th> 4145 <th>Required</th> 4146 </tr> 4147 </thead> 4148 <tbody> 4149 <tr> 4150 <td>file</td> 4151 <td>String</td> 4152 <td>Path to source file or path</td> 4153 <td>n/a</td> 4154 <td>No</td> 4155 </tr> 4156 <tr> 4157 <td>minTokens</td> 4158 <td>Integer</td> 4159 <td>Sets the minimum number of identical tokens (default: 70)</td> 4160 <td>70</td> 4161 <td>No</td> 4162 </tr> 4163 <tr> 4164 <td>minLines</td> 4165 <td>Integer</td> 4166 <td>Sets the minimum number of identical lines (default: 5)</td> 4167 <td>5</td> 4168 <td>No</td> 4169 </tr> 4170 <tr> 4171 <td>format</td> 4172 <td>String</td> 4173 <td>The format for the report when no nested formatter is used.</td> 4174 <td>default</td> 4175 <td>No</td> 4176 </tr> 4177 </tbody> 4178 </table> 4179 <h3>Supported Nested Tags</h3> 4180 <ul> 4181 <li>fileset <p> This nested tag is required when the <em>file</em> attribute is not set. 4182 </p></li> 4183 <li>formatter <p> The results of the copy/paste scan can be printed in different 4184 formats. Output will always be sent to a file, unless you set the 4185 <em>usefile</em> attribute to <em>false</em>. </p> 4186 <h3>Attributes</h3> 4187 <table> 4188 <thead> 4189 <tr> 4190 <th>Name</th> 4191 <th>Type</th> 4192 <th>Description</th> 4193 <th>Default</th> 4194 <th>Required</th> 4195 </tr> 4196 </thead> 4197 <tbody> 4198 <tr> 4199 <td>type</td> 4200 <td>String</td> 4201 <td>The output format. Accepts the the same values as the 4202 <em>format</em> attribute (<em>default</em>, <em>pmd</em>).</td> 4203 <td>n/a</td> 4204 <td>Yes</td> 4205 </tr> 4206 <tr> 4207 <td>useFile</td> 4208 <td>Boolean</td> 4209 <td>Flag that determines whether output should be sent to a file or 4210 not.</td> 4211 <td>true</td> 4212 <td>No</td> 4213 </tr> 4214 <tr> 4215 <td>outfile</td> 4216 <td>String</td> 4217 <td>Path to write output file to.</td> 4218 <td>n/a</td> 4219 <td>Yes</td> 4220 </tr> 4221 </tbody> 4222 </table></li> 4223 </ul> 4224 <h3>Examples</h3> 4225 <pre> 4411 4226 <phpcpd file="path/to/source.php"/> 4412 4227 </pre> 4413 <p>Checking for copy/paste code in one particular source file.4414 Sending Default-Report toSTDOUT.</p>4415 <pre>4228 <p>Checking for copy/paste code in one particular source file. Sending Default-Report to 4229 STDOUT.</p> 4230 <pre> 4416 4231 <phpcpd file="path/to/source"> 4417 4232 <formatter type="pmd" outfile="reports/pmd-cpd.xml"/> 4418 4233 </phpcpd> 4419 4234 </pre> 4420 <p>Checking for copy/paste code in files of the given path.</p>4421 <pre>4235 <p>Checking for copy/paste code in files of the given path.</p> 4236 <pre> 4422 4237 <phpcpd> 4423 4238 <fileset dir="${builddir}" id="filestocpd"> … … 4432 4247 </phpcpd> 4433 4248 </pre> 4434 4435 <h2> 4436 <a name="PHPMDTask"></a>PHPMDTask 4437 </h2> 4438 <p> 4439 This task runs <a href="http://phpmd.org" target="_blank">phpmd</a>, a 4440 Project Mess Detector (PMD) for PHP Code. You need an installed 4441 version of this software to use this task. 4442 </p> 4443 <h3>Attributes</h3> 4444 <table> 4445 <thead> 4446 <tr> 4447 <th>Name</th> 4448 <th>Type</th> 4449 <th>Description</th> 4450 <th>Default</th> 4451 <th>Required</th> 4452 </tr> 4453 </thead> 4454 <tbody> 4455 <tr> 4456 <td>file</td> 4457 <td>String</td> 4458 <td>Path to source file or path</td> 4459 <td>n/a</td> 4460 <td>No</td> 4461 </tr> 4462 <tr> 4463 <td>rulesets</td> 4464 <td>String</td> 4465 <td>Sets the rulesets used for analyzing the source code</td> 4466 <td>codesize,unusedcode</td> 4467 <td>No</td> 4468 </tr> 4469 <tr> 4470 <td>minimumPriority</td> 4471 <td>Integer</td> 4472 <td>The minimum priority for rules to load.</td> 4473 <td>5</td> 4474 <td>No</td> 4475 </tr> 4476 <tr> 4477 <td>allowedFileExtensions</td> 4478 <td>String</td> 4479 <td>Comma-separated list of valid file extensions (without dot) 4480 for analyzed files.</td> 4481 <td>php</td> 4482 <td>No</td> 4483 </tr> 4484 <tr> 4485 <td>ignorePatterns</td> 4486 <td>String</td> 4487 <td>Comma-separated list of directory patterns to ignore.</td> 4488 <td>.git,.svn,CVS,.bzr,.hg</td> 4489 <td>No</td> 4490 </tr> 4491 <tr> 4492 <td>format</td> 4493 <td>String</td> 4494 <td>The format for the report when no nested formatter is used.</td> 4495 <td>text</td> 4496 <td>No</td> 4497 </tr> 4498 </tbody> 4499 </table> 4500 <h3>Supported Nested Tags</h3> 4501 <ul> 4502 <li>fileset 4503 <p> 4504 This nested tag is required when the <em>file</em> attribute is not 4505 set. 4506 </p></li> 4507 <li>formatter 4508 <p> 4509 The results of the analysis can be printed in different formats. 4510 Output will always be sent to STDOUT, unless you set the <em>usefile</em> 4511 attribute to <em>true</em> and set an filename in the <em>outfile</em> 4512 attribute. 4513 </p> 4514 <h3>Attributes</h3> 4515 <table> 4516 <thead> 4517 <tr> 4518 <th>Name</th> 4519 <th>Type</th> 4520 <th>Description</th> 4521 <th>Default</th> 4522 <th>Required</th> 4523 </tr> 4524 </thead> 4525 <tbody> 4526 <tr> 4527 <td>type</td> 4528 <td>String</td> 4529 <td>The output format. Accepts the the same values as the <em>format</em> 4530 attribute (<em>xml</em>, <em>html</em>, <em>text</em>).</td> 4531 <td>n/a</td> 4532 <td>Yes</td> 4533 </tr> 4534 <tr> 4535 <td>usefile</td> 4536 <td>Boolean</td> 4537 <td>Boolean that determines whether output should be sent to 4538 a file.</td> 4539 <td>true</td> 4540 <td>No</td> 4541 </tr> 4542 <tr> 4543 <td>outfile</td> 4544 <td>String</td> 4545 <td>Path to write output file to.</td> 4546 <td>n/a</td> 4547 <td>Yes</td> 4548 </tr> 4549 </tbody> 4550 </table></li> 4551 </ul> 4552 <h3>Examples</h3> 4553 <pre> 4249 <h2> 4250 <a name="PHPMDTask"></a>PHPMDTask </h2> 4251 <p> This task runs <a href="http://phpmd.org" target="_blank">phpmd</a>, a Project Mess 4252 Detector (PMD) for PHP Code. You need an installed version of this software to use this 4253 task. </p> 4254 <h3>Attributes</h3> 4255 <table> 4256 <thead> 4257 <tr> 4258 <th>Name</th> 4259 <th>Type</th> 4260 <th>Description</th> 4261 <th>Default</th> 4262 <th>Required</th> 4263 </tr> 4264 </thead> 4265 <tbody> 4266 <tr> 4267 <td>file</td> 4268 <td>String</td> 4269 <td>Path to source file or path</td> 4270 <td>n/a</td> 4271 <td>No</td> 4272 </tr> 4273 <tr> 4274 <td>rulesets</td> 4275 <td>String</td> 4276 <td>Sets the rulesets used for analyzing the source code</td> 4277 <td>codesize,unusedcode</td> 4278 <td>No</td> 4279 </tr> 4280 <tr> 4281 <td>minimumPriority</td> 4282 <td>Integer</td> 4283 <td>The minimum priority for rules to load.</td> 4284 <td>5</td> 4285 <td>No</td> 4286 </tr> 4287 <tr> 4288 <td>allowedFileExtensions</td> 4289 <td>String</td> 4290 <td>Comma-separated list of valid file extensions (without dot) for analyzed 4291 files.</td> 4292 <td>php</td> 4293 <td>No</td> 4294 </tr> 4295 <tr> 4296 <td>ignorePatterns</td> 4297 <td>String</td> 4298 <td>Comma-separated list of directory patterns to ignore.</td> 4299 <td>.git,.svn,CVS,.bzr,.hg</td> 4300 <td>No</td> 4301 </tr> 4302 <tr> 4303 <td>format</td> 4304 <td>String</td> 4305 <td>The format for the report when no nested formatter is used.</td> 4306 <td>text</td> 4307 <td>No</td> 4308 </tr> 4309 </tbody> 4310 </table> 4311 <h3>Supported Nested Tags</h3> 4312 <ul> 4313 <li>fileset <p> This nested tag is required when the <em>file</em> attribute is not set. 4314 </p></li> 4315 <li>formatter <p> The results of the analysis can be printed in different formats. 4316 Output will always be sent to STDOUT, unless you set the <em>usefile</em> 4317 attribute to <em>true</em> and set an filename in the <em>outfile</em> 4318 attribute. </p> 4319 <h3>Attributes</h3> 4320 <table> 4321 <thead> 4322 <tr> 4323 <th>Name</th> 4324 <th>Type</th> 4325 <th>Description</th> 4326 <th>Default</th> 4327 <th>Required</th> 4328 </tr> 4329 </thead> 4330 <tbody> 4331 <tr> 4332 <td>type</td> 4333 <td>String</td> 4334 <td>The output format. Accepts the the same values as the 4335 <em>format</em> attribute (<em>xml</em>, <em>html</em>, 4336 <em>text</em>).</td> 4337 <td>n/a</td> 4338 <td>Yes</td> 4339 </tr> 4340 <tr> 4341 <td>usefile</td> 4342 <td>Boolean</td> 4343 <td>Boolean that determines whether output should be sent to a 4344 file.</td> 4345 <td>true</td> 4346 <td>No</td> 4347 </tr> 4348 <tr> 4349 <td>outfile</td> 4350 <td>String</td> 4351 <td>Path to write output file to.</td> 4352 <td>n/a</td> 4353 <td>Yes</td> 4354 </tr> 4355 </tbody> 4356 </table></li> 4357 </ul> 4358 <h3>Examples</h3> 4359 <pre> 4554 4360 <phpmd file="path/to/source.php"/> 4555 4361 </pre> 4556 <p>Checking syntax of one particular source file. Sending 4557 Text-Report to STDOUT.</p> 4558 <pre> 4362 <p>Checking syntax of one particular source file. Sending Text-Report to STDOUT.</p> 4363 <pre> 4559 4364 <phpmd file="path/to/source"> 4560 4365 <formatter type="html" outfile="reports/pmd.html"/> 4561 4366 </phpmd> 4562 4367 </pre> 4563 <p>Checking syntax of source files in the given path.</p>4564 <pre>4368 <p>Checking syntax of source files in the given path.</p> 4369 <pre> 4565 4370 <phpmd> 4566 4371 <fileset dir="${builddir}"> … … 4571 4376 </phpmd> 4572 4377 </pre> 4573 <p>Checking syntax of source files in the fileset pathes.</p> 4574 4575 <h2> 4576 <a name="PhpDependTask"></a>PhpDependTask 4577 </h2> 4578 <p> 4579 This task runs <a href="http://pdepend.org" target="_blank">PHP_Depend</a>, 4580 a software analyzer and metric tool for PHP Code. You need an 4581 installed version of this software to use this task. 4582 </p> 4583 <h3>Attributes</h3> 4584 <table> 4585 <thead> 4586 <tr> 4587 <th>Name</th> 4588 <th>Type</th> 4589 <th>Description</th> 4590 <th>Default</th> 4591 <th>Required</th> 4592 </tr> 4593 </thead> 4594 <tbody> 4595 <tr> 4596 <td>file</td> 4597 <td>String</td> 4598 <td>Path to source file or path</td> 4599 <td>n/a</td> 4600 <td>No</td> 4601 </tr> 4602 <tr> 4603 <td>configFile</td> 4604 <td>String</td> 4605 <td>Path to PHP_Depend configuration file</td> 4606 <td>n/a</td> 4607 <td>No</td> 4608 </tr> 4609 <tr> 4610 <td>allowedFileExtensions</td> 4611 <td>String</td> 4612 <td>Comma-separated list of valid file extensions (without dot) 4613 for analyzed files.</td> 4614 <td>php,php5</td> 4615 <td>No</td> 4616 </tr> 4617 <tr> 4618 <td>excludeDirectories</td> 4619 <td>String</td> 4620 <td>Comma-separated list of directory patterns to ignore.</td> 4621 <td>.git,.svn,CVS</td> 4622 <td>No</td> 4623 </tr> 4624 <tr> 4625 <td>excludePackages</td> 4626 <td>String</td> 4627 <td>Comma-separated list of packages to ignore.</td> 4628 <td>n/a</td> 4629 <td>No</td> 4630 </tr> 4631 <tr> 4632 <td>withoutAnnotations</td> 4633 <td>Boolean</td> 4634 <td>Should the parse ignore doc comment annotations?</td> 4635 <td>false</td> 4636 <td>No</td> 4637 </tr> 4638 <tr> 4639 <td>supportBadDocumentation</td> 4640 <td>Boolean</td> 4641 <td>Should PHP_Depend treat <b>+global</b> as a regular project 4642 package?</td> 4643 <td>false</td> 4644 <td>No</td> 4645 </tr> 4646 <tr> 4647 <td>debug</td> 4648 <td>Boolean</td> 4649 <td>Enable debug output?</td> 4650 <td>false</td> 4651 <td>No</td> 4652 </tr> 4653 <tr> 4654 <td>haltonerror</td> 4655 <td>Boolean</td> 4656 <td>Stop the build process if errors occurred during the run.</td> 4657 <td>false</td> 4658 <td>No</td> 4659 </tr> 4660 </tbody> 4661 </table> 4662 <h3>Supported Nested Tags</h3> 4663 <ul> 4664 <li>fileset 4665 <p> 4666 This nested tag is required when the <em>file</em> attribute is not 4667 set. 4668 </p></li> 4669 <li>logger 4670 <p>The results of the analysis can be parsed by differed loggers. 4671 At least one logger is required. Output will always be sent to a 4672 file.</p> 4673 <h3>Attributes</h3> 4674 <table> 4675 <thead> 4676 <tr> 4677 <th>Name</th> 4678 <th>Type</th> 4679 <th>Description</th> 4680 <th>Default</th> 4681 <th>Required</th> 4682 </tr> 4683 </thead> 4684 <tbody> 4685 <tr> 4686 <td>type</td> 4687 <td>String</td> 4688 <td>The name of the logger. Valid loggers are: <em>jdepend-chart</em>, 4689 <em>jdepend-xml</em>, <em>overview-pyramid</em>, <em>phpunit-xml</em> 4690 and <em>summary-xml</em>.</td> 4691 <td>n/a</td> 4692 <td>Yes</td> 4693 </tr> 4694 <tr> 4695 <td>outfile</td> 4696 <td>String</td> 4697 <td>Path to write output file to.</td> 4698 <td>n/a</td> 4699 <td>Yes</td> 4700 </tr> 4701 </tbody> 4702 </table></li> 4703 <li>analyzer 4704 <p>Some additional analyzers can be added to the runner.</p> 4705 <h3>Attributes</h3> 4706 <table> 4707 <thead> 4708 <tr> 4709 <th>Name</th> 4710 <th>Type</th> 4711 <th>Description</th> 4712 <th>Default</th> 4713 <th>Required</th> 4714 </tr> 4715 </thead> 4716 <tbody> 4717 <tr> 4718 <td>type</td> 4719 <td>String</td> 4720 <td>The name of the analyzer. Valid analyzers are: <em>coderank-mode</em>.</td> 4721 <td>n/a</td> 4722 <td>Yes</td> 4723 </tr> 4724 <tr> 4725 <td>value</td> 4726 <td>String</td> 4727 <td>The value for the analyzer.</td> 4728 <td>n/a</td> 4729 <td>Yes</td> 4730 </tr> 4731 </tbody> 4732 </table></li> 4733 </ul> 4734 <h3>Examples</h3> 4735 <pre> 4378 <p>Checking syntax of source files in the fileset pathes.</p> 4379 <h2> 4380 <a name="PhpDependTask"></a>PhpDependTask </h2> 4381 <p> This task runs <a href="http://pdepend.org" target="_blank">PHP_Depend</a>, a software 4382 analyzer and metric tool for PHP Code. You need an installed version of this software to 4383 use this task. </p> 4384 <h3>Attributes</h3> 4385 <table> 4386 <thead> 4387 <tr> 4388 <th>Name</th> 4389 <th>Type</th> 4390 <th>Description</th> 4391 <th>Default</th> 4392 <th>Required</th> 4393 </tr> 4394 </thead> 4395 <tbody> 4396 <tr> 4397 <td>file</td> 4398 <td>String</td> 4399 <td>Path to source file or path</td> 4400 <td>n/a</td> 4401 <td>No</td> 4402 </tr> 4403 <tr> 4404 <td>configFile</td> 4405 <td>String</td> 4406 <td>Path to PHP_Depend configuration file</td> 4407 <td>n/a</td> 4408 <td>No</td> 4409 </tr> 4410 <tr> 4411 <td>allowedFileExtensions</td> 4412 <td>String</td> 4413 <td>Comma-separated list of valid file extensions (without dot) for analyzed 4414 files.</td> 4415 <td>php,php5</td> 4416 <td>No</td> 4417 </tr> 4418 <tr> 4419 <td>excludeDirectories</td> 4420 <td>String</td> 4421 <td>Comma-separated list of directory patterns to ignore.</td> 4422 <td>.git,.svn,CVS</td> 4423 <td>No</td> 4424 </tr> 4425 <tr> 4426 <td>excludePackages</td> 4427 <td>String</td> 4428 <td>Comma-separated list of packages to ignore.</td> 4429 <td>n/a</td> 4430 <td>No</td> 4431 </tr> 4432 <tr> 4433 <td>withoutAnnotations</td> 4434 <td>Boolean</td> 4435 <td>Should the parse ignore doc comment annotations?</td> 4436 <td>false</td> 4437 <td>No</td> 4438 </tr> 4439 <tr> 4440 <td>supportBadDocumentation</td> 4441 <td>Boolean</td> 4442 <td>Should PHP_Depend treat <b>+global</b> as a regular project package?</td> 4443 <td>false</td> 4444 <td>No</td> 4445 </tr> 4446 <tr> 4447 <td>debug</td> 4448 <td>Boolean</td> 4449 <td>Enable debug output?</td> 4450 <td>false</td> 4451 <td>No</td> 4452 </tr> 4453 <tr> 4454 <td>haltonerror</td> 4455 <td>Boolean</td> 4456 <td>Stop the build process if errors occurred during the run.</td> 4457 <td>false</td> 4458 <td>No</td> 4459 </tr> 4460 </tbody> 4461 </table> 4462 <h3>Supported Nested Tags</h3> 4463 <ul> 4464 <li>fileset <p> This nested tag is required when the <em>file</em> attribute is not set. 4465 </p></li> 4466 <li>logger <p>The results of the analysis can be parsed by differed loggers. At least 4467 one logger is required. Output will always be sent to a file.</p> 4468 <h3>Attributes</h3> 4469 <table> 4470 <thead> 4471 <tr> 4472 <th>Name</th> 4473 <th>Type</th> 4474 <th>Description</th> 4475 <th>Default</th> 4476 <th>Required</th> 4477 </tr> 4478 </thead> 4479 <tbody> 4480 <tr> 4481 <td>type</td> 4482 <td>String</td> 4483 <td>The name of the logger. Valid loggers are: <em>jdepend-chart</em>, 4484 <em>jdepend-xml</em>, <em>overview-pyramid</em>, 4485 <em>phpunit-xml</em> and <em>summary-xml</em>.</td> 4486 <td>n/a</td> 4487 <td>Yes</td> 4488 </tr> 4489 <tr> 4490 <td>outfile</td> 4491 <td>String</td> 4492 <td>Path to write output file to.</td> 4493 <td>n/a</td> 4494 <td>Yes</td> 4495 </tr> 4496 </tbody> 4497 </table></li> 4498 <li>analyzer <p>Some additional analyzers can be added to the runner.</p> 4499 <h3>Attributes</h3> 4500 <table> 4501 <thead> 4502 <tr> 4503 <th>Name</th> 4504 <th>Type</th> 4505 <th>Description</th> 4506 <th>Default</th> 4507 <th>Required</th> 4508 </tr> 4509 </thead> 4510 <tbody> 4511 <tr> 4512 <td>type</td> 4513 <td>String</td> 4514 <td>The name of the analyzer. Valid analyzers are: 4515 <em>coderank-mode</em>.</td> 4516 <td>n/a</td> 4517 <td>Yes</td> 4518 </tr> 4519 <tr> 4520 <td>value</td> 4521 <td>String</td> 4522 <td>The value for the analyzer.</td> 4523 <td>n/a</td> 4524 <td>Yes</td> 4525 </tr> 4526 </tbody> 4527 </table></li> 4528 </ul> 4529 <h3>Examples</h3> 4530 <pre> 4736 4531 <phpdepend file="path/to/source"> 4737 4532 <logger type="phpunit-xml" outfile="reports/metrics.xml"/> 4738 4533 </phpdepend> 4739 4534 </pre> 4740 <p>Running code analysis for source files in the given path.</p>4741 <pre>4535 <p>Running code analysis for source files in the given path.</p> 4536 <pre> 4742 4537 <phpdepend> 4743 4538 <fileset dir="${builddir}"> … … 4749 4544 </phpdepend> 4750 4545 </pre> 4751 <p> 4752 Running code analysis for source files in the fileset pathes with 4753 CodeRank strategy <em>method</em>. 4754 </p> 4755 4756 <h2> 4757 <a name="PhpDocumentorTask"></a>PhpDocumentorTask 4758 </h2> 4759 <p> 4760 This task runs <a href="http://www.phpdoc.org/" target="_blank">phpDocumentor</a>, 4761 an auto-documentation tool for PHP similar to Javadoc. 4762 </p> 4763 <h3>Attributes</h3> 4764 <table> 4765 <thead> 4766 <tr> 4767 <th>Name</th> 4768 <th>Type</th> 4769 <th>Description</th> 4770 <th>Default</th> 4771 <th>Required</th> 4772 </tr> 4773 </thead> 4774 <tbody> 4775 <tr> 4776 <td>title</td> 4777 <td>String</td> 4778 <td>Title for browser window / package index.</td> 4779 <td>n/a</td> 4780 <td>No</td> 4781 </tr> 4782 <tr> 4783 <td>destdir</td> 4784 <td>String</td> 4785 <td>Destination directory for output files.</td> 4786 <td>n/a</td> 4787 <td rowspan="2">Yes</td> 4788 </tr> 4789 <tr> 4790 <td>target</td> 4791 <td>String</td> 4792 <td>Alias of <em>destdir</em> ("target" is config param used by 4793 PhpDocumentor)</td> 4794 <td>n/a</td> 4795 </tr> 4796 <tr> 4797 <td>output</td> 4798 <td>String</td> 4799 <td>Output format (such as <em>HTML:Smarty:PHP</em>).</td> 4800 <td>n/a</td> 4801 <td>Yes</td> 4802 </tr> 4803 <tr> 4804 <td>sourcecode</td> 4805 <td>Boolean</td> 4806 <td>Generate syntax-highlighted sourcecode file for each file 4807 parsed?</td> 4808 <td>false</td> 4809 <td>No</td> 4810 </tr> 4811 <tr> 4812 <td>examplesdir</td> 4813 <td>String</td> 4814 <td>Path to directory in which to look for example 4815 documentation.</td> 4816 <td>n/a</td> 4817 <td>No</td> 4818 </tr> 4819 <tr> 4820 <td>parseprivate</td> 4821 <td>Boolean</td> 4822 <td>Parse @internal and elements marked private.</td> 4823 <td>false</td> 4824 <td>No</td> 4825 </tr> 4826 <tr> 4827 <td>javadocdesc</td> 4828 <td>Boolean</td> 4829 <td>JavaDoc-compliant description parsing. Use on/off, default 4830 off (more flexibility)</td> 4831 <td>false</td> 4832 <td>No</td> 4833 </tr> 4834 <tr> 4835 <td>quiet</td> 4836 <td>Boolean</td> 4837 <td>Suppress output to STDOUT.</td> 4838 <td>false</td> 4839 <td>No</td> 4840 </tr> 4841 <tr> 4842 <td>packageoutput</td> 4843 <td>String</td> 4844 <td>Output documentation only for selected packages. Use a 4845 comma-delimited list</td> 4846 <td>n/a</td> 4847 <td>No</td> 4848 </tr> 4849 <tr> 4850 <td>ignoretags</td> 4851 <td>String</td> 4852 <td>Comma-separated list of tags to ignore (@package, 4853 @subpackage, @access and @ignore may not be ignored).</td> 4854 <td>n/a</td> 4855 <td>No</td> 4856 </tr> 4857 <tr> 4858 <td>defaultpackagename</td> 4859 <td>String</td> 4860 <td>name to use for the default package. If not specified, uses 4861 'default'</td> 4862 <td>n/a</td> 4863 <td>No</td> 4864 </tr> 4865 <tr> 4866 <td>defaultcategoryname</td> 4867 <td>String</td> 4868 <td>name to use for the default category. If not specified, 4869 uses 'default'</td> 4870 <td>n/a</td> 4871 <td>No</td> 4872 </tr> 4873 <tr> 4874 <td>pear</td> 4875 <td>Boolean</td> 4876 <td>Treat parse dirs as PEAR repository? (package is directory, 4877 _members are @access private)</td> 4878 <td>false</td> 4879 <td>No</td> 4880 </tr> 4881 <tr> 4882 <td>templatebase</td> 4883 <td>String</td> 4884 <td>Set base dirctory of all templates for this parse.</td> 4885 <td>n/a</td> 4886 <td>No</td> 4887 </tr> 4888 <tr> 4889 <td>undocumentedelements</td> 4890 <td>Boolean</td> 4891 <td>Control whether or not warnings will be shown for 4892 undocumented elements. Useful for identifying classes and methods 4893 that haven't yet been documented.</td> 4894 <td>false</td> 4895 <td>No</td> 4896 </tr> 4897 <tr> 4898 <td>customtags</td> 4899 <td>Boolean</td> 4900 <td>Custom tags, will be recognized and put in tags[] instead 4901 of unknowntags[].</td> 4902 <td>false</td> 4903 <td>No</td> 4904 </tr> 4905 <tr> 4906 <td>ignore</td> 4907 <td>String</td> 4908 <td>List of files to ignore, separated by ','.</td> 4909 <td>n/a</td> 4910 <td>No</td> 4911 </tr> 4912 </tbody> 4913 </table> 4914 <h3>Supported Nested Tags</h3> 4915 <ul> 4916 <li>fileset - Files that should be included for parsing</li> 4917 <li>projdocfileset - Files that should be treated as 4918 README/INSTALL/CHANGELOG files</li> 4919 </ul> 4920 <h3>Examples</h3> 4921 <pre> 4546 <p> Running code analysis for source files in the fileset pathes with CodeRank strategy 4547 <em>method</em>. </p> 4548 <h2> 4549 <a name="PhpDocumentorTask"></a>PhpDocumentorTask </h2> 4550 <p> This task runs <a href="http://www.phpdoc.org/" target="_blank">phpDocumentor</a>, an 4551 auto-documentation tool for PHP similar to Javadoc. </p> 4552 <h3>Attributes</h3> 4553 <table> 4554 <thead> 4555 <tr> 4556 <th>Name</th> 4557 <th>Type</th> 4558 <th>Description</th> 4559 <th>Default</th> 4560 <th>Required</th> 4561 </tr> 4562 </thead> 4563 <tbody> 4564 <tr> 4565 <td>title</td> 4566 <td>String</td> 4567 <td>Title for browser window / package index.</td> 4568 <td>n/a</td> 4569 <td>No</td> 4570 </tr> 4571 <tr> 4572 <td>destdir</td> 4573 <td>String</td> 4574 <td>Destination directory for output files.</td> 4575 <td>n/a</td> 4576 <td rowspan="2">Yes</td> 4577 </tr> 4578 <tr> 4579 <td>target</td> 4580 <td>String</td> 4581 <td>Alias of <em>destdir</em> ("target" is config param used by 4582 PhpDocumentor)</td> 4583 <td>n/a</td> 4584 </tr> 4585 <tr> 4586 <td>output</td> 4587 <td>String</td> 4588 <td>Output format (such as <em>HTML:Smarty:PHP</em>).</td> 4589 <td>n/a</td> 4590 <td>Yes</td> 4591 </tr> 4592 <tr> 4593 <td>sourcecode</td> 4594 <td>Boolean</td> 4595 <td>Generate syntax-highlighted sourcecode file for each file parsed?</td> 4596 <td>false</td> 4597 <td>No</td> 4598 </tr> 4599 <tr> 4600 <td>examplesdir</td> 4601 <td>String</td> 4602 <td>Path to directory in which to look for example documentation.</td> 4603 <td>n/a</td> 4604 <td>No</td> 4605 </tr> 4606 <tr> 4607 <td>parseprivate</td> 4608 <td>Boolean</td> 4609 <td>Parse @internal and elements marked private.</td> 4610 <td>false</td> 4611 <td>No</td> 4612 </tr> 4613 <tr> 4614 <td>javadocdesc</td> 4615 <td>Boolean</td> 4616 <td>JavaDoc-compliant description parsing. Use on/off, default off (more 4617 flexibility)</td> 4618 <td>false</td> 4619 <td>No</td> 4620 </tr> 4621 <tr> 4622 <td>quiet</td> 4623 <td>Boolean</td> 4624 <td>Suppress output to STDOUT.</td> 4625 <td>false</td> 4626 <td>No</td> 4627 </tr> 4628 <tr> 4629 <td>packageoutput</td> 4630 <td>String</td> 4631 <td>Output documentation only for selected packages. Use a comma-delimited 4632 list</td> 4633 <td>n/a</td> 4634 <td>No</td> 4635 </tr> 4636 <tr> 4637 <td>ignoretags</td> 4638 <td>String</td> 4639 <td>Comma-separated list of tags to ignore (@package, @subpackage, @access and 4640 @ignore may not be ignored).</td> 4641 <td>n/a</td> 4642 <td>No</td> 4643 </tr> 4644 <tr> 4645 <td>defaultpackagename</td> 4646 <td>String</td> 4647 <td>name to use for the default package. If not specified, uses 'default'</td> 4648 <td>n/a</td> 4649 <td>No</td> 4650 </tr> 4651 <tr> 4652 <td>defaultcategoryname</td> 4653 <td>String</td> 4654 <td>name to use for the default category. If not specified, uses 'default'</td> 4655 <td>n/a</td> 4656 <td>No</td> 4657 </tr> 4658 <tr> 4659 <td>pear</td> 4660 <td>Boolean</td> 4661 <td>Treat parse dirs as PEAR repository? (package is directory, _members are 4662 @access private)</td> 4663 <td>false</td> 4664 <td>No</td> 4665 </tr> 4666 <tr> 4667 <td>templatebase</td> 4668 <td>String</td> 4669 <td>Set base dirctory of all templates for this parse.</td> 4670 <td>n/a</td> 4671 <td>No</td> 4672 </tr> 4673 <tr> 4674 <td>undocumentedelements</td> 4675 <td>Boolean</td> 4676 <td>Control whether or not warnings will be shown for undocumented elements. 4677 Useful for identifying classes and methods that haven't yet been 4678 documented.</td> 4679 <td>false</td> 4680 <td>No</td> 4681 </tr> 4682 <tr> 4683 <td>customtags</td> 4684 <td>Boolean</td> 4685 <td>Custom tags, will be recognized and put in tags[] instead of 4686 unknowntags[].</td> 4687 <td>false</td> 4688 <td>No</td> 4689 </tr> 4690 <tr> 4691 <td>ignore</td> 4692 <td>String</td> 4693 <td>List of files to ignore, separated by ','.</td> 4694 <td>n/a</td> 4695 <td>No</td> 4696 </tr> 4697 </tbody> 4698 </table> 4699 <h3>Supported Nested Tags</h3> 4700 <ul> 4701 <li>fileset - Files that should be included for parsing</li> 4702 <li>projdocfileset - Files that should be treated as README/INSTALL/CHANGELOG files</li> 4703 </ul> 4704 <h3>Examples</h3> 4705 <pre> 4922 4706 <phpdoc title="API Documentation" 4923 4707 destdir="apidocs" … … 4934 4718 </phpdoc> 4935 4719 </pre> 4936 <h2> 4937 <a name="PhpDocumentorExternalTask"></a>PhpDocumentorExternalTask 4938 </h2> 4939 <p> 4940 This is the same as the <a href="#PhpDocumentorTask">PhpDocumentorTask</a> 4941 but uses the command line application. Use this as a fallback in case 4942 you're running into troubles when using the phpDocumentor-library with 4943 the PhpDocumentorTask directly, e.g. when you're using Smarty and have 4944 Smarty in your library path too. 4945 </p> 4946 <p>This task supports everything the PhpDocumentorTask supports, 4947 differences are documented below.</p> 4948 <h3>Additional attributes</h3> 4949 <table> 4950 <thead> 4951 <tr> 4952 <th>Name</th> 4953 <th>Type</th> 4954 <th>Description</th> 4955 <th>Default</th> 4956 <th>Required</th> 4957 </tr> 4958 </thead> 4959 <tbody> 4960 <tr> 4961 <td>programpath</td> 4962 <td>String</td> 4963 <td>Path to the phpdoc executable (relative or absolute).</td> 4964 <td>n/a</td> 4965 <td>No</td> 4966 </tr> 4967 <tr> 4968 <td>sourcepath</td> 4969 <td>String</td> 4970 <td>A directory to scan for parsable files. Supports multiple 4971 directories separated with a comma.</td> 4972 <td>n/a</td> 4973 <td>Yes, if no <tt><fileset></tt> is given</td> 4974 </tr> 4975 </tbody> 4976 </table> 4977 <h3>Unsupported attributes</h3> 4978 <table> 4979 <thead> 4980 <tr> 4981 <th>Name</th> 4982 <th>Description</th> 4983 </tr> 4984 </thead> 4985 <tbody> 4986 <tr> 4987 <td>configdir</td> 4988 <td>Currently not supported. The attribute will be ignored and 4989 a warning messag will be generated. The build continues (to ease 4990 when changing an existing phpdoc task) however this may have 4991 unexpected side effects.</td> 4992 </tr> 4993 </tbody> 4994 </table> 4995 <h3>Examples</h3> 4996 <pre> 4720 <h2> 4721 <a name="PhpDocumentorExternalTask"></a>PhpDocumentorExternalTask </h2> 4722 <p> This is the same as the <a href="#PhpDocumentorTask">PhpDocumentorTask</a> but uses the 4723 command line application. Use this as a fallback in case you're running into troubles 4724 when using the phpDocumentor-library with the PhpDocumentorTask directly, e.g. when 4725 you're using Smarty and have Smarty in your library path too. </p> 4726 <p>This task supports everything the PhpDocumentorTask supports, differences are documented 4727 below.</p> 4728 <h3>Additional attributes</h3> 4729 <table> 4730 <thead> 4731 <tr> 4732 <th>Name</th> 4733 <th>Type</th> 4734 <th>Description</th> 4735 <th>Default</th> 4736 <th>Required</th> 4737 </tr> 4738 </thead> 4739 <tbody> 4740 <tr> 4741 <td>programpath</td> 4742 <td>String</td> 4743 <td>Path to the phpdoc executable (relative or absolute).</td> 4744 <td>n/a</td> 4745 <td>No</td> 4746 </tr> 4747 <tr> 4748 <td>sourcepath</td> 4749 <td>String</td> 4750 <td>A directory to scan for parsable files. Supports multiple directories 4751 separated with a comma.</td> 4752 <td>n/a</td> 4753 <td>Yes, if no <tt><fileset></tt> is given</td> 4754 </tr> 4755 </tbody> 4756 </table> 4757 <h3>Unsupported attributes</h3> 4758 <table> 4759 <thead> 4760 <tr> 4761 <th>Name</th> 4762 <th>Description</th> 4763 </tr> 4764 </thead> 4765 <tbody> 4766 <tr> 4767 <td>configdir</td> 4768 <td>Currently not supported. The attribute will be ignored and a warning messag 4769 will be generated. The build continues (to ease when changing an existing 4770 phpdoc task) however this may have unexpected side effects.</td> 4771 </tr> 4772 </tbody> 4773 </table> 4774 <h3>Examples</h3> 4775 <pre> 4997 4776 <phpdocext title="API Documentation" 4998 4777 programpath="/usr/bin/phpdoc" … … 5010 4789 </phpdocext> 5011 4790 </pre> 5012 5013 <h2> 5014 <a name="PhpLintTask"></a>PhpLintTask 5015 </h2> 5016 <p> 5017 The <em>PhpLintTask</em> checks syntax (lint) on one or more PHP 5018 source code files. 5019 </p> 5020 <h3>Attributes</h3> 5021 <table> 5022 <thead> 5023 <tr> 5024 <th>Name</th> 5025 <th>Type</th> 5026 <th>Description</th> 5027 <th>Default</th> 5028 <th>Required</th> 5029 </tr> 5030 </thead> 5031 <tbody> 5032 <tr> 5033 <td>file</td> 5034 <td>String</td> 5035 <td>Path to source file</td> 5036 <td>n/a</td> 5037 <td>No</td> 5038 </tr> 5039 <tr> 5040 <td>haltonfailure</td> 5041 <td>Boolean</td> 5042 <td>Stop the build process if the linting process encounters an 5043 error.</td> 5044 <td>false</td> 5045 <td>No</td> 5046 </tr> 5047 <tr> 5048 <td>errorproperty</td> 5049 <td>String</td> 5050 <td>The name of a property that will be set to contain the 5051 error string (if any).</td> 5052 <td>n/a</td> 5053 <td>No</td> 5054 </tr> 5055 <tr> 5056 <td>interpreter</td> 5057 <td>string</td> 5058 <td>Path to alternative PHP interpreter</td> 5059 <td>Defaults to the <tt>${php.command}</tt> property which is 5060 the interpreter used to execute phing itself.</td> 5061 <td>No</td> 5062 </tr> 5063 <tr> 5064 <td>cachefile</td> 5065 <td>String</td> 5066 <td>If set, enables writing of last-modified times to <em>cachefile</em>, 5067 to speed up processing of files that rarely change</td> 5068 <td>none</td> 5069 <td>No</td> 5070 </tr> 5071 <tr> 5072 <td>level</td> 5073 <td>String</td> 5074 <td>Control the level at which phplint reports status messages. 5075 One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 5076 <em>debug</em>.</td> 5077 <td><em>info</em></td> 5078 <td>No</td> 5079 </tr> 5080 <tr> 5081 <td>tofile</td> 5082 <td>String</td> 5083 <td>File to write list of 'bad files' to.</td> 5084 <td>n/a</td> 5085 <td>No</td> 5086 </tr> 5087 <tr> 5088 <td>deprecatedAsError</td> 5089 <td>Boolean</td> 5090 <td>Whether to treat deprecated warnings (introduced in PHP 5091 5.3) as errors.</td> 5092 <td>n/a</td> 5093 <td>false</td> 5094 </tr> 5095 </tbody> 5096 </table> 5097 <h3>Supported Nested Tags</h3> 5098 <ul> 5099 <li>fileset</li> 5100 </ul> 5101 <h3>Example</h3> 5102 <pre> 4791 <h2> 4792 <a name="PhpLintTask"></a>PhpLintTask </h2> 4793 <p> The <em>PhpLintTask</em> checks syntax (lint) on one or more PHP source code files. </p> 4794 <h3>Attributes</h3> 4795 <table> 4796 <thead> 4797 <tr> 4798 <th>Name</th> 4799 <th>Type</th> 4800 <th>Description</th> 4801 <th>Default</th> 4802 <th>Required</th> 4803 </tr> 4804 </thead> 4805 <tbody> 4806 <tr> 4807 <td>file</td> 4808 <td>String</td> 4809 <td>Path to source file</td> 4810 <td>n/a</td> 4811 <td>No</td> 4812 </tr> 4813 <tr> 4814 <td>haltonfailure</td> 4815 <td>Boolean</td> 4816 <td>Stop the build process if the linting process encounters an error.</td> 4817 <td>false</td> 4818 <td>No</td> 4819 </tr> 4820 <tr> 4821 <td>errorproperty</td> 4822 <td>String</td> 4823 <td>The name of a property that will be set to contain the error string (if 4824 any).</td> 4825 <td>n/a</td> 4826 <td>No</td> 4827 </tr> 4828 <tr> 4829 <td>interpreter</td> 4830 <td>string</td> 4831 <td>Path to alternative PHP interpreter</td> 4832 <td>Defaults to the <tt>${php.command}</tt> property which is the interpreter 4833 used to execute phing itself.</td> 4834 <td>No</td> 4835 </tr> 4836 <tr> 4837 <td>cachefile</td> 4838 <td>String</td> 4839 <td>If set, enables writing of last-modified times to <em>cachefile</em>, to 4840 speed up processing of files that rarely change</td> 4841 <td>none</td> 4842 <td>No</td> 4843 </tr> 4844 <tr> 4845 <td>level</td> 4846 <td>String</td> 4847 <td>Control the level at which phplint reports status messages. One of 4848 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 4849 <em>debug</em>.</td> 4850 <td><em>info</em></td> 4851 <td>No</td> 4852 </tr> 4853 <tr> 4854 <td>tofile</td> 4855 <td>String</td> 4856 <td>File to write list of 'bad files' to.</td> 4857 <td>n/a</td> 4858 <td>No</td> 4859 </tr> 4860 <tr> 4861 <td>deprecatedAsError</td> 4862 <td>Boolean</td> 4863 <td>Whether to treat deprecated warnings (introduced in PHP 5.3) as errors.</td> 4864 <td>n/a</td> 4865 <td>false</td> 4866 </tr> 4867 </tbody> 4868 </table> 4869 <h3>Supported Nested Tags</h3> 4870 <ul> 4871 <li>fileset</li> 4872 </ul> 4873 <h3>Example</h3> 4874 <pre> 5103 4875 <phplint file="path/to/source.php"/> 5104 4876 </pre> 5105 <p>Checking syntax of one particular source file.</p>5106 <pre>4877 <p>Checking syntax of one particular source file.</p> 4878 <pre> 5107 4879 <phplint> 5108 4880 <fileset dir="src"> … … 5111 4883 </phplint> 5112 4884 </pre> 5113 <p>Check syntax of a fileset of source files.</p> 5114 <h2> 5115 <a name="PHPUnitTask"></a>PHPUnitTask 5116 </h2> 5117 <p> 5118 This task runs testcases using the <a href="http://www.phpunit.de/" 5119 target="_blank">PHPUnit</a> framework. It is a functional port of the 5120 Ant <a href="http://ant.apache.org/manual/OptionalTasks/junit.html" 5121 target="_blank">JUnit</a> task. 5122 </p> 5123 <p> 5124 <b>NB:</b> the identifiers <i>phpunit2</i> (PHPUnit2Task) and <i>phpunit3</i> 5125 (PHPUnit3Task) have been deprecated! 5126 </p> 5127 <h3>Attributes</h3> 5128 <table> 5129 <thead> 5130 <tr> 5131 <th>Name</th> 5132 <th>Type</th> 5133 <th>Description</th> 5134 <th>Default</th> 5135 <th>Required</th> 5136 </tr> 5137 </thead> 5138 <tbody> 5139 <tr> 5140 <td>printsummary</td> 5141 <td>Boolean</td> 5142 <td>Print one-line statistics for each testcase.</td> 5143 <td>false</td> 5144 <td>No</td> 5145 </tr> 5146 <tr> 5147 <td>bootstrap</td> 5148 <td>string</td> 5149 <td>The name of a bootstrap file that is run before executing 5150 the tests.</td> 5151 <td>none</td> 5152 <td>No</td> 5153 </tr> 5154 <tr> 5155 <td>codecoverage</td> 5156 <td>Boolean</td> 5157 <td>Gather code coverage information while running tests 5158 (requires Xdebug).</td> 5159 <td>false</td> 5160 <td>No</td> 5161 </tr> 5162 <tr> 5163 <td>haltonerror</td> 5164 <td>Boolean</td> 5165 <td>Stop the build process if an error occurs during the test 5166 run.</td> 5167 <td>false</td> 5168 <td>No</td> 5169 </tr> 5170 <tr> 5171 <td>haltonfailure</td> 5172 <td>Boolean</td> 5173 <td>Stop the build process if a test fails (errors are 5174 considered failures as well).</td> 5175 <td>false</td> 5176 <td>No</td> 5177 </tr> 5178 <tr> 5179 <td>haltonincomplete</td> 5180 <td>Boolean</td> 5181 <td>Stop the build process if any incomplete tests are 5182 encountered.</td> 5183 <td>false</td> 5184 <td>No</td> 5185 </tr> 5186 <tr> 5187 <td>haltonskipped</td> 5188 <td>Boolean</td> 5189 <td>Stop the build process if any skipped tests are 5190 encountered.</td> 5191 <td>false</td> 5192 <td>No</td> 5193 </tr> 5194 <tr> 5195 <td>failureproperty</td> 5196 <td>String</td> 5197 <td>Name of property to set (to true) on failure.</td> 5198 <td>n/a</td> 5199 <td>No</td> 5200 </tr> 5201 <tr> 5202 <td>errorproperty</td> 5203 <td>String</td> 5204 <td>Name of property to set (to true) on error.</td> 5205 <td>n/a</td> 5206 <td>No</td> 5207 </tr> 5208 <tr> 5209 <td>incompleteproperty</td> 5210 <td>String</td> 5211 <td>Name of property to set (to true) on incomplete tests.</td> 5212 <td>n/a</td> 5213 <td>No</td> 5214 </tr> 5215 <tr> 5216 <td>skippedproperty</td> 5217 <td>String</td> 5218 <td>Name of property to set (to true) on skipped tests.</td> 5219 <td>n/a</td> 5220 <td>No</td> 5221 </tr> 5222 <tr> 5223 <td>usecustomerrorhandler</td> 5224 <td>Boolean</td> 5225 <td>Use a custom Phing/PHPUnit error handler to process PHP 5226 errors.</td> 5227 <td>true</td> 5228 <td>No</td> 5229 </tr> 5230 <tr> 5231 <td>processisolation</td> 5232 <td>Boolean</td> 5233 <td>Enable process isolation when executing 5234 tests.</td> 5235 <td>false</td> 5236 <td>No</td> 5237 </tr> 5238 </tbody> 5239 </table> 5240 <h3>Supported Nested Tags</h3> 5241 <ul> 5242 <li>formatter 5243 <p> 5244 The results of the tests can be printed in different formats. Output 5245 will always be sent to a file, unless you set the <em>usefile</em> 5246 attribute to <em>false</em>. The name of the file is predetermined 5247 by the formatter and can be changed by the <em>outfile</em> 5248 attribute. 5249 </p> 5250 <p> 5251 There are four predefined formatters - <em>xml</em> and <em>clover</em> 5252 print the test results in the JUnit and Clover XML formats, the 5253 other two emit plain text. The <em>brief</em> formatter will only 5254 print detailed information for testcases that failed, while <em>plain</em> 5255 emits a short statistics line for all test cases. Custom formatters 5256 that implement 5257 phing.tasks.ext.phpunit.formatter.PHPUnitResultFormatter can be 5258 specified. 5259 </p> 5260 <h3>Attributes</h3> 5261 <table> 5262 <thead> 5263 <tr> 5264 <th>Name</th> 5265 <th>Type</th> 5266 <th>Description</th> 5267 <th>Default</th> 5268 <th>Required</th> 5269 </tr> 5270 </thead> 5271 <tbody> 5272 <tr> 5273 <td>type</td> 5274 <td>String</td> 5275 <td>Use a predefined formatter (either <em>xml</em>, <em>plain</em>, 5276 <em>clover</em>, or <em>brief</em>).</td> 5277 <td>n/a</td> 5278 <td rowspan="2">One of these is required.</td> 5279 </tr> 5280 <tr> 5281 <td>classname</td> 5282 <td>String</td> 5283 <td>Name of a custom formatter class.</td> 5284 <td>n/a</td> 5285 </tr> 5286 <tr> 5287 <td>usefile</td> 5288 <td>Boolean</td> 5289 <td>Boolean that determines whether output should be sent to 5290 a file.</td> 5291 <td>true</td> 5292 <td>No</td> 5293 </tr> 5294 <tr> 5295 <td>todir</td> 5296 <td>String</td> 5297 <td>Directory to write the file to.</td> 5298 <td>n/a</td> 5299 <td>No</td> 5300 </tr> 5301 <tr> 5302 <td>outfile</td> 5303 <td>String</td> 5304 <td>Filename of the result.</td> 5305 <td>Depends on formatter</td> 5306 <td>No</td> 5307 </tr> 5308 </tbody> 5309 </table></li> 5310 <li>batchtest 5311 <p> 5312 Define a number of tests based on pattern matching. <em>batchtest</em> 5313 collects the included files from any number of nested 5314 <fileset>s. It then generates a lists of classes that are 5315 (in)directly defined by each PHP file. 5316 </p> 5317 <h3>Attributes</h3> 5318 <table> 5319 <thead> 5320 <tr> 5321 <th>Name</th> 5322 <th>Type</th> 5323 <th>Description</th> 5324 <th>Default</th> 5325 <th>Required</th> 5326 </tr> 5327 </thead> 5328 <tbody> 5329 <tr> 5330 <td>exclude</td> 5331 <td>String</td> 5332 <td>A list of classes to exclude from the pattern matching. 5333 For example, when you have two baseclasses <em>BaseWebTest</em> 5334 and <em>BaseMathTest</em>, which are included a number of 5335 testcases (and thus added to the list of testclasses), you can 5336 exclude those classes from the list by typing <em>exclude="BaseWebTest 5337 BaseMathTest"</em>.</td> 5338 <td>n/a</td> 5339 <td>No</td> 5340 </tr> 5341 <tr> 5342 <td>classpath</td> 5343 <td>String</td> 5344 <td>Used to define more paths on which - besides the PHP 5345 include_path - to look for the test files.</td> 5346 <td>n/a</td> 5347 <td>No</td> 5348 </tr> 5349 <tr> 5350 <td>name</td> 5351 <td>String</td> 5352 <td>The name that is used to create a testsuite from this 5353 batchtest.</td> 5354 <td>Phing Batchtest</td> 5355 <td>No</td> 5356 </tr> 5357 </tbody> 5358 </table> 5359 <h3>Supported Nested Tags</h3> 5360 <ul> 5361 <li>fileset</li> 5362 </ul></li> 5363 </ul> 5364 <h3>Examples</h3> 5365 <pre><phpunit> 4885 <p>Check syntax of a fileset of source files.</p> 4886 <h2> 4887 <a name="PHPUnitTask"></a>PHPUnitTask </h2> 4888 <p> This task runs testcases using the <a href="http://www.phpunit.de/" target="_blank" 4889 >PHPUnit</a> framework. It is a functional port of the Ant <a 4890 href="http://ant.apache.org/manual/OptionalTasks/junit.html" target="_blank" 4891 >JUnit</a> task. </p> 4892 <p> 4893 <b>NB:</b> the identifiers <i>phpunit2</i> (PHPUnit2Task) and <i>phpunit3</i> 4894 (PHPUnit3Task) have been deprecated! </p> 4895 <h3>Attributes</h3> 4896 <table> 4897 <thead> 4898 <tr> 4899 <th>Name</th> 4900 <th>Type</th> 4901 <th>Description</th> 4902 <th>Default</th> 4903 <th>Required</th> 4904 </tr> 4905 </thead> 4906 <tbody> 4907 <tr> 4908 <td>printsummary</td> 4909 <td>Boolean</td> 4910 <td>Print one-line statistics for each testcase.</td> 4911 <td>false</td> 4912 <td>No</td> 4913 </tr> 4914 <tr> 4915 <td>bootstrap</td> 4916 <td>string</td> 4917 <td>The name of a bootstrap file that is run before executing the tests.</td> 4918 <td>none</td> 4919 <td>No</td> 4920 </tr> 4921 <tr> 4922 <td>codecoverage</td> 4923 <td>Boolean</td> 4924 <td>Gather code coverage information while running tests (requires Xdebug).</td> 4925 <td>false</td> 4926 <td>No</td> 4927 </tr> 4928 <tr> 4929 <td>haltonerror</td> 4930 <td>Boolean</td> 4931 <td>Stop the build process if an error occurs during the test run.</td> 4932 <td>false</td> 4933 <td>No</td> 4934 </tr> 4935 <tr> 4936 <td>haltonfailure</td> 4937 <td>Boolean</td> 4938 <td>Stop the build process if a test fails (errors are considered failures as 4939 well).</td> 4940 <td>false</td> 4941 <td>No</td> 4942 </tr> 4943 <tr> 4944 <td>haltonincomplete</td> 4945 <td>Boolean</td> 4946 <td>Stop the build process if any incomplete tests are encountered.</td> 4947 <td>false</td> 4948 <td>No</td> 4949 </tr> 4950 <tr> 4951 <td>haltonskipped</td> 4952 <td>Boolean</td> 4953 <td>Stop the build process if any skipped tests are encountered.</td> 4954 <td>false</td> 4955 <td>No</td> 4956 </tr> 4957 <tr> 4958 <td>failureproperty</td> 4959 <td>String</td> 4960 <td>Name of property to set (to true) on failure.</td> 4961 <td>n/a</td> 4962 <td>No</td> 4963 </tr> 4964 <tr> 4965 <td>errorproperty</td> 4966 <td>String</td> 4967 <td>Name of property to set (to true) on error.</td> 4968 <td>n/a</td> 4969 <td>No</td> 4970 </tr> 4971 <tr> 4972 <td>incompleteproperty</td> 4973 <td>String</td> 4974 <td>Name of property to set (to true) on incomplete tests.</td> 4975 <td>n/a</td> 4976 <td>No</td> 4977 </tr> 4978 <tr> 4979 <td>skippedproperty</td> 4980 <td>String</td> 4981 <td>Name of property to set (to true) on skipped tests.</td> 4982 <td>n/a</td> 4983 <td>No</td> 4984 </tr> 4985 <tr> 4986 <td>usecustomerrorhandler</td> 4987 <td>Boolean</td> 4988 <td>Use a custom Phing/PHPUnit error handler to process PHP errors.</td> 4989 <td>true</td> 4990 <td>No</td> 4991 </tr> 4992 <tr> 4993 <td>processisolation</td> 4994 <td>Boolean</td> 4995 <td>Enable process isolation when executing tests.</td> 4996 <td>false</td> 4997 <td>No</td> 4998 </tr> 4999 </tbody> 5000 </table> 5001 <h3>Supported Nested Tags</h3> 5002 <ul> 5003 <li>formatter <p> The results of the tests can be printed in different formats. Output 5004 will always be sent to a file, unless you set the <em>usefile</em> attribute to 5005 <em>false</em>. The name of the file is predetermined by the formatter and 5006 can be changed by the <em>outfile</em> attribute. </p> 5007 <p> There are four predefined formatters - <em>xml</em> and <em>clover</em> print 5008 the test results in the JUnit and Clover XML formats, the other two emit plain 5009 text. The <em>brief</em> formatter will only print detailed information for 5010 testcases that failed, while <em>plain</em> emits a short statistics line for 5011 all test cases. Custom formatters that implement 5012 phing.tasks.ext.phpunit.formatter.PHPUnitResultFormatter can be specified. </p> 5013 <h3>Attributes</h3> 5014 <table> 5015 <thead> 5016 <tr> 5017 <th>Name</th> 5018 <th>Type</th> 5019 <th>Description</th> 5020 <th>Default</th> 5021 <th>Required</th> 5022 </tr> 5023 </thead> 5024 <tbody> 5025 <tr> 5026 <td>type</td> 5027 <td>String</td> 5028 <td>Use a predefined formatter (either <em>xml</em>, <em>plain</em>, 5029 <em>clover</em>, or <em>brief</em>).</td> 5030 <td>n/a</td> 5031 <td rowspan="2">One of these is required.</td> 5032 </tr> 5033 <tr> 5034 <td>classname</td> 5035 <td>String</td> 5036 <td>Name of a custom formatter class.</td> 5037 <td>n/a</td> 5038 </tr> 5039 <tr> 5040 <td>usefile</td> 5041 <td>Boolean</td> 5042 <td>Boolean that determines whether output should be sent to a 5043 file.</td> 5044 <td>true</td> 5045 <td>No</td> 5046 </tr> 5047 <tr> 5048 <td>todir</td> 5049 <td>String</td> 5050 <td>Directory to write the file to.</td> 5051 <td>n/a</td> 5052 <td>No</td> 5053 </tr> 5054 <tr> 5055 <td>outfile</td> 5056 <td>String</td> 5057 <td>Filename of the result.</td> 5058 <td>Depends on formatter</td> 5059 <td>No</td> 5060 </tr> 5061 </tbody> 5062 </table></li> 5063 <li>batchtest <p> Define a number of tests based on pattern matching. <em>batchtest</em> 5064 collects the included files from any number of nested <fileset>s. It then 5065 generates a lists of classes that are (in)directly defined by each PHP file. </p> 5066 <h3>Attributes</h3> 5067 <table> 5068 <thead> 5069 <tr> 5070 <th>Name</th> 5071 <th>Type</th> 5072 <th>Description</th> 5073 <th>Default</th> 5074 <th>Required</th> 5075 </tr> 5076 </thead> 5077 <tbody> 5078 <tr> 5079 <td>exclude</td> 5080 <td>String</td> 5081 <td>A list of classes to exclude from the pattern matching. For example, 5082 when you have two baseclasses <em>BaseWebTest</em> and 5083 <em>BaseMathTest</em>, which are included a number of testcases 5084 (and thus added to the list of testclasses), you can exclude those 5085 classes from the list by typing <em>exclude="BaseWebTest 5086 BaseMathTest"</em>.</td> 5087 <td>n/a</td> 5088 <td>No</td> 5089 </tr> 5090 <tr> 5091 <td>classpath</td> 5092 <td>String</td> 5093 <td>Used to define more paths on which - besides the PHP include_path - 5094 to look for the test files.</td> 5095 <td>n/a</td> 5096 <td>No</td> 5097 </tr> 5098 <tr> 5099 <td>name</td> 5100 <td>String</td> 5101 <td>The name that is used to create a testsuite from this 5102 batchtest.</td> 5103 <td>Phing Batchtest</td> 5104 <td>No</td> 5105 </tr> 5106 </tbody> 5107 </table> 5108 <h3>Supported Nested Tags</h3> 5109 <ul> 5110 <li>fileset</li> 5111 </ul></li> 5112 </ul> 5113 <h3>Examples</h3> 5114 <pre><phpunit> 5366 5115 <formatter todir="reports" type="xml"/> 5367 5116 <batchtest> … … 5373 5122 </phpunit> 5374 5123 </pre> 5375 <p> 5376 Runs all matching testcases in the directory <em>tests</em>, writing 5377 XML results to the directory <em>reports</em>. 5378 </p> 5379 <pre><phpunit codecoverage="true" haltonfailure="true" haltonerror="true"> 5124 <p> Runs all matching testcases in the directory <em>tests</em>, writing XML results to the 5125 directory <em>reports</em>. </p> 5126 <pre><phpunit codecoverage="true" haltonfailure="true" haltonerror="true"> 5380 5127 <formatter type="plain" usefile="false"/> 5381 5128 <batchtest> … … 5386 5133 </phpunit> 5387 5134 </pre> 5388 <p> 5389 Runs all matching testcases in the directory <em>tests</em>, gathers 5390 code coverage information, writing plain text results to the console. 5391 The build process is aborted if a test fails. 5392 </p> 5393 <pre><phpunit bootstrap="src/autoload.php"> 5135 <p> Runs all matching testcases in the directory <em>tests</em>, gathers code coverage 5136 information, writing plain text results to the console. The build process is aborted if 5137 a test fails. </p> 5138 <pre><phpunit bootstrap="src/autoload.php"> 5394 5139 <formatter type="plain" usefile="false"/> 5395 5140 <batchtest> … … 5400 5145 </phpunit> 5401 5146 </pre> 5402 <p> 5403 Runs all matching testcases in the directory <em>tests</em>, writing 5404 plain text results to the console. Additionally, before executing the 5405 tests, the bootstrap file <em>src/autoload.php</em> is loaded. 5406 </p> 5407 <p> 5408 <b>Important note:</b> using a mechanism such as an "AllTests.php" 5409 file to execute testcases will bypass the Phing hooks used for 5410 reporting and counting, and could possibly lead to strange results. 5411 Instead, use one of more fileset's to provide a list of testcases to 5412 execute. 5413 </p> 5414 <h2> 5415 <a name="PHPUnitReport"></a>PHPUnitReport 5416 </h2> 5417 <p>This task transforms PHPUnit xml reports to HTML using XSLT.</p> 5418 <p> 5419 <b>NB:</b> the identifiers <i>phpunit2report</i> (PHPUnit2Report) and 5420 <i>phpunit3report</i> (PHPUnit3Report)have been deprecated! 5421 </p> 5422 <h3>Attributes</h3> 5423 <table> 5424 <thead> 5425 <tr> 5426 <th>Name</th> 5427 <th>Type</th> 5428 <th>Description</th> 5429 <th>Default</th> 5430 <th>Required</th> 5431 </tr> 5432 </thead> 5433 <tbody> 5434 <tr> 5435 <td>infile</td> 5436 <td>String</td> 5437 <td>The filename of the XML results file to use.</td> 5438 <td>testsuites.xml</td> 5439 <td>No</td> 5440 </tr> 5441 <tr> 5442 <td>format</td> 5443 <td>String</td> 5444 <td>The format of the generated report. Must be <em>noframes</em> 5445 or <em>frames</em>.</td> 5446 <td>noframes</td> 5447 <td>No</td> 5448 </tr> 5449 <tr> 5450 <td>styledir</td> 5451 <td>String</td> 5452 <td>The directory where the stylesheets are located. They must 5453 conform to the following conventions: 5454 <ul> 5455 <li>frames format: the stylesheet must be named 5456 phpunit-frames.xsl.</li> 5457 <li>noframes format: the stylesheet must be named 5458 phpunit-noframes.xsl.</li> 5459 </ul> 5460 5461 If unspecified, the task will look for the stylesheet(s) in 5462 the following directories: the PHP include path, the Phing 5463 home directory and the PEAR data directory (if applicable). 5464 </td> 5465 <td>n/a</td> 5466 <td>No</td> 5467 </tr> 5468 <tr> 5469 <td>todir</td> 5470 <td>String</td> 5471 <td>An existing directory where the files resulting from the 5472 transformation should be written to.</td> 5473 <td /> 5474 <td>Yes</td> 5475 </tr> 5476 <tr> 5477 <td>usesorttable</td> 5478 <td>boolean</td> 5479 <td>Whether to use the sorttable JavaScript library (see <a 5480 href="http://www.kryogenix.org/code/browser/sorttable/">http://www.kryogenix.org/code/browser/sorttable/</a>)</td> 5481 <td>false</td> 5482 <td>No</td> 5483 </tr> 5484 </tbody> 5485 </table> 5486 <h3>Examples</h3> 5487 <pre><phpunitreport infile="reports/testsuites.xml" 5147 <p> Runs all matching testcases in the directory <em>tests</em>, writing plain text results 5148 to the console. Additionally, before executing the tests, the bootstrap file 5149 <em>src/autoload.php</em> is loaded. </p> 5150 <p> 5151 <b>Important note:</b> using a mechanism such as an "AllTests.php" file to execute 5152 testcases will bypass the Phing hooks used for reporting and counting, and could 5153 possibly lead to strange results. Instead, use one of more fileset's to provide a list 5154 of testcases to execute. </p> 5155 <h2> 5156 <a name="PHPUnitReport"></a>PHPUnitReport </h2> 5157 <p>This task transforms PHPUnit xml reports to HTML using XSLT.</p> 5158 <p> 5159 <b>NB:</b> the identifiers <i>phpunit2report</i> (PHPUnit2Report) and 5160 <i>phpunit3report</i> (PHPUnit3Report)have been deprecated! </p> 5161 <h3>Attributes</h3> 5162 <table> 5163 <thead> 5164 <tr> 5165 <th>Name</th> 5166 <th>Type</th> 5167 <th>Description</th> 5168 <th>Default</th> 5169 <th>Required</th> 5170 </tr> 5171 </thead> 5172 <tbody> 5173 <tr> 5174 <td>infile</td> 5175 <td>String</td> 5176 <td>The filename of the XML results file to use.</td> 5177 <td>testsuites.xml</td> 5178 <td>No</td> 5179 </tr> 5180 <tr> 5181 <td>format</td> 5182 <td>String</td> 5183 <td>The format of the generated report. Must be <em>noframes</em> or 5184 <em>frames</em>.</td> 5185 <td>noframes</td> 5186 <td>No</td> 5187 </tr> 5188 <tr> 5189 <td>styledir</td> 5190 <td>String</td> 5191 <td>The directory where the stylesheets are located. They must conform to the 5192 following conventions: <ul> 5193 <li>frames format: the stylesheet must be named phpunit-frames.xsl.</li> 5194 <li>noframes format: the stylesheet must be named 5195 phpunit-noframes.xsl.</li> 5196 </ul> If unspecified, the task will look for the stylesheet(s) in the 5197 following directories: the PHP include path, the Phing home directory and 5198 the PEAR data directory (if applicable). </td> 5199 <td>n/a</td> 5200 <td>No</td> 5201 </tr> 5202 <tr> 5203 <td>todir</td> 5204 <td>String</td> 5205 <td>An existing directory where the files resulting from the transformation 5206 should be written to.</td> 5207 <td></td> 5208 <td>Yes</td> 5209 </tr> 5210 <tr> 5211 <td>usesorttable</td> 5212 <td>boolean</td> 5213 <td>Whether to use the sorttable JavaScript library (see <a 5214 href="http://www.kryogenix.org/code/browser/sorttable/" 5215 >http://www.kryogenix.org/code/browser/sorttable/</a>)</td> 5216 <td>false</td> 5217 <td>No</td> 5218 </tr> 5219 </tbody> 5220 </table> 5221 <h3>Examples</h3> 5222 <pre><phpunitreport infile="reports/testsuites.xml" 5488 5223 format="frames" 5489 5224 todir="reports/tests" 5490 5225 styledir="/home/phing/etc"/> 5491 5226 </pre> 5492 <p> 5493 Generates a framed report in the directory <em>reports/tests</em> 5494 using the file <em>reports/testsuites.xml</em> as input. 5495 </p> 5496 <p> 5497 <b>Important note:</b> testclasses that are not explicitly placed in a 5498 package (by using a '@package' tag in the class-level DocBlock) are 5499 listed under the "default" package. 5500 </p> 5501 5502 <h2> 5503 <a name="rSTTask"></a>rSTTask 5504 </h2> 5505 <p> 5506 Renders rST (reStructuredText) files into different output formats. 5507 </p> 5508 <p> 5509 This task requires the <em>python docutils</em> installed. They contain 5510 <cite>rst2html</cite>, <cite>rst2latex</cite>, <cite>rst2man</cite>, 5511 <cite>rst2odt</cite>, <cite>rst2s5</cite>, <cite>rst2xml</cite>. 5512 </p> 5513 <h3>Features</h3> 5514 <ul> 5515 <li>renders single files</li> 5516 <li>render nested filesets</li> 5517 <li>mappers to generate output file names based on the rst ones</li> 5518 <li>multiple output formats</li> 5519 <li>filter chains to e.g. replace variables after rendering</li> 5520 <li>custom parameters to the rst2* tool</li> 5521 <li>configurable rst tool path</li> 5522 <li>uptodate check</li> 5523 <li>automatically overwrites old files</li> 5524 <li>automatically creates target directories</li> 5525 </ul> 5526 5527 <h3>Attributes</h3> 5528 <table> 5529 <thead> 5530 <tr> 5531 <th>Name</th> 5532 <th>Type</th> 5533 <th>Description</th> 5534 <th>Default</th> 5535 <th>Required</th> 5536 </tr> 5537 </thead> 5538 <tbody> 5539 <tr> 5540 <td>file</td> 5541 <td>String</td> 5542 <td>rST input file to render</td> 5543 <td>n/a</td> 5544 <td>Yes (or fileset)</td> 5545 </tr> 5546 <tr> 5547 <td>format</td> 5548 <td>String</td> 5549 <td><p>Output format:</p> 5550 <ul> 5551 <li>html</li> 5552 <li>latex</li> 5553 <li>man</li> 5554 <li>odt</li> 5555 <li>s5</li> 5556 <li>xml</li> 5557 </ul></td> 5558 <td>html</td> 5559 <td>No</td> 5560 </tr> 5561 <tr> 5562 <td>destination</td> 5563 <td>String</td> 5564 <td>Path to store the rendered file to. Used as directory if 5565 it ends with a <em>/</em>.</td> 5566 <td>magically determined from input file</td> 5567 <td>No</td> 5568 </tr> 5569 <tr> 5570 <td>uptodate</td> 5571 <td>Boolean</td> 5572 <td>Only render if the input file is newer than the target 5573 file</td> 5574 <td>false</td> 5575 <td>No</td> 5576 </tr> 5577 <tr> 5578 <td>toolpath</td> 5579 <td>String</td> 5580 <td>Path to the rst2* tool</td> 5581 <td>determined from <em>format</em></td> 5582 <td>No</td> 5583 </tr> 5584 <tr> 5585 <td>toolparam</td> 5586 <td>String</td> 5587 <td>Additional commandline parameters to the rst2* tool</td> 5588 <td>n/a</td> 5589 <td>No</td> 5590 </tr> 5591 </tbody> 5592 </table> 5593 <h3>Supported Nested Tags</h3> 5594 <ul> 5595 <li>fileset</li> 5596 <li>mapper</li> 5597 <li>filterchain</li> 5598 </ul> 5599 <h3>Examples</h3> 5600 <h4> 5601 Render a single rST file to HTML 5602 </h4> 5603 <p>By default, HTML is generated. If no target file is 5604 specified, the input file name is taken, and its extension replaced 5605 with the correct one for the output format.</p> 5606 <pre> 5227 <p> Generates a framed report in the directory <em>reports/tests</em> using the file 5228 <em>reports/testsuites.xml</em> as input. </p> 5229 <p> 5230 <b>Important note:</b> testclasses that are not explicitly placed in a package (by using 5231 a '@package' tag in the class-level DocBlock) are listed under the "default" package. </p> 5232 <h2> 5233 <a name="rSTTask"></a>rSTTask </h2> 5234 <p> Renders rST (reStructuredText) files into different output formats. </p> 5235 <p> This task requires the <em>python docutils</em> installed. They contain 5236 <cite>rst2html</cite>, <cite>rst2latex</cite>, <cite>rst2man</cite>, 5237 <cite>rst2odt</cite>, <cite>rst2s5</cite>, <cite>rst2xml</cite>. </p> 5238 <p> Homepage: <a href="https://gitorious.org/phing/rsttask" 5239 >https://gitorious.org/phing/rsttask</a> 5240 </p> 5241 <h3>Features</h3> 5242 <ul> 5243 <li>renders single files</li> 5244 <li>render nested filesets</li> 5245 <li>mappers to generate output file names based on the rst ones</li> 5246 <li>multiple output formats</li> 5247 <li>filter chains to e.g. replace variables after rendering</li> 5248 <li>custom parameters to the rst2* tool</li> 5249 <li>configurable rst tool path</li> 5250 <li>uptodate check</li> 5251 <li>automatically overwrites old files</li> 5252 <li>automatically creates target directories</li> 5253 </ul> 5254 <h3>Attributes</h3> 5255 <table> 5256 <thead> 5257 <tr> 5258 <th>Name</th> 5259 <th>Type</th> 5260 <th>Description</th> 5261 <th>Default</th> 5262 <th>Required</th> 5263 </tr> 5264 </thead> 5265 <tbody> 5266 <tr> 5267 <td>file</td> 5268 <td>String</td> 5269 <td>rST input file to render</td> 5270 <td>n/a</td> 5271 <td>Yes (or fileset)</td> 5272 </tr> 5273 <tr> 5274 <td>format</td> 5275 <td>String</td> 5276 <td> 5277 <p>Output format:</p> 5278 <ul> 5279 <li>html</li> 5280 <li>latex</li> 5281 <li>man</li> 5282 <li>odt</li> 5283 <li>s5</li> 5284 <li>xml</li> 5285 </ul> 5286 </td> 5287 <td>html</td> 5288 <td>No</td> 5289 </tr> 5290 <tr> 5291 <td>destination</td> 5292 <td>String</td> 5293 <td>Path to store the rendered file to. Used as directory if it ends with a 5294 <em>/</em>.</td> 5295 <td>magically determined from input file</td> 5296 <td>No</td> 5297 </tr> 5298 <tr> 5299 <td>uptodate</td> 5300 <td>Boolean</td> 5301 <td>Only render if the input file is newer than the target file</td> 5302 <td>false</td> 5303 <td>No</td> 5304 </tr> 5305 <tr> 5306 <td>toolpath</td> 5307 <td>String</td> 5308 <td>Path to the rst2* tool</td> 5309 <td>determined from <em>format</em></td> 5310 <td>No</td> 5311 </tr> 5312 <tr> 5313 <td>toolparam</td> 5314 <td>String</td> 5315 <td>Additional commandline parameters to the rst2* tool</td> 5316 <td>n/a</td> 5317 <td>No</td> 5318 </tr> 5319 </tbody> 5320 </table> 5321 <h3>Supported Nested Tags</h3> 5322 <ul> 5323 <li>fileset</li> 5324 <li>mapper</li> 5325 <li>filterchain</li> 5326 </ul> 5327 <h3>Examples</h3> 5328 <h4> Render a single rST file to HTML </h4> 5329 <p>By default, HTML is generated. If no target file is specified, the input file name is 5330 taken, and its extension replaced with the correct one for the output format.</p> 5331 <pre> 5607 5332 <?xml version="1.0" encoding="utf-8"?> 5608 5333 <project name="example" basedir="." default="single"> … … 5614 5339 </project> 5615 5340 </pre> 5616 <h4> 5617 Render a single rST file to any supported format 5618 </h4> 5619 <p> 5620 The <em>format</em> 5621 attribute determines the output format: 5622 </p> 5623 <pre> 5341 <h4> Render a single rST file to any supported format </h4> 5342 <p> The <em>format</em> attribute determines the output format: </p> 5343 <pre> 5624 5344 <?xml version="1.0" encoding="utf-8"?> 5625 5345 <project name="example" basedir="." default="single"> … … 5631 5351 </project> 5632 5352 </pre> 5633 <h4> 5634 Specifying the output file name 5635 </h4> 5636 <pre> 5353 <h4> Specifying the output file name </h4> 5354 <pre> 5637 5355 <?xml version="1.0" encoding="utf-8"?> 5638 5356 <project name="example" basedir="." default="single"> … … 5644 5362 </project> 5645 5363 </pre> 5646 <h4> 5647 Rendering multiple files 5648 </h4> 5649 <p> 5650 A nested <em>fileset</em> 5651 tag may be used to specify multiple files. 5652 </p> 5653 <pre> 5364 <h4> Rendering multiple files </h4> 5365 <p> A nested <em>fileset</em> tag may be used to specify multiple files. </p> 5366 <pre> 5654 5367 <?xml version="1.0" encoding="utf-8"?> 5655 5368 <project name="example" basedir="." default="multiple"> … … 5666 5379 </project> 5667 5380 </pre> 5668 <h4> 5669 Rendering multiple files to another directory 5670 </h4> 5671 <p> 5672 A nested <em>mapper</em> 5673 may be used to determine the output file names. 5674 </p> 5675 <pre> 5381 <h4> Rendering multiple files to another directory </h4> 5382 <p> A nested <em>mapper</em> may be used to determine the output file names. </p> 5383 <pre> 5676 5384 <?xml version="1.0" encoding="utf-8"?> 5677 5385 <project name="example" basedir="." default="multiple"> … … 5689 5397 </project> 5690 5398 </pre> 5691 <h4> 5692 Modifying files after rendering 5693 </h4> 5694 <p>You may have variables in your rST code that can be replaced 5695 after rendering, i.e. the version of your software.</p> 5696 <pre> 5399 <h4> Modifying files after rendering </h4> 5400 <p>You may have variables in your rST code that can be replaced after rendering, i.e. the 5401 version of your software.</p> 5402 <pre> 5697 5403 <?xml version="1.0" encoding="utf-8"?> 5698 5404 <project name="example" basedir="." default="filterchain"> … … 5714 5420 </project> 5715 5421 </pre> 5716 <h4> 5717 Rendering changed files only 5718 </h4> 5719 <p> 5720 The <em>uptodate</em> 5721 attribute determines if only those files should be rendered that 5722 are newer than their output file. 5723 </p> 5724 <pre> 5422 <h4> Rendering changed files only </h4> 5423 <p> The <em>uptodate</em> attribute determines if only those files should be rendered that 5424 are newer than their output file. </p> 5425 <pre> 5725 5426 <?xml version="1.0" encoding="utf-8"?> 5726 5427 <project name="example" basedir="." default="multiple"> … … 5736 5437 </project> 5737 5438 </pre> 5738 <h4> 5739 Specify a custom CSS file 5740 </h4> 5741 <p> 5742 You may pass any additional parameters to the rst conversion tools 5743 with the <em>toolparam</em> attribute. 5744 </p> 5745 <pre> 5439 <h4> Specify a custom CSS file </h4> 5440 <p> You may pass any additional parameters to the rst conversion tools with the 5441 <em>toolparam</em> attribute. </p> 5442 <pre> 5746 5443 <?xml version="1.0" encoding="utf-8"?> 5747 5444 <project name="example" basedir="." default="single"> … … 5753 5450 </project> 5754 5451 </pre> 5755 5756 <h2> 5757 <a name="S3PutTask"></a>S3PutTask 5758 </h2> 5759 <p> 5760 Uploads an object to Amazon S3. This task requires the PEAR package <a 5761 href="http://pear.php.net/package/Services_Amazon_S3" 5762 title="Services_Amazon_S3" target="_blank">Services_Amazon_S3</a> 5763 </p> 5764 <h3>Examples</h3> 5765 <p>Uploading a file</p> 5766 <pre><s3put source="/path/to/file.txt" object="file.txt" bucket="mybucket" key="AmazonKey" secret="AmazonSecret" /></pre> 5767 <p>You can also define "bucket, key, secret" outside of the task 5768 call:</p> 5769 <pre> 5452 <h2> 5453 <a name="S3PutTask"></a>S3PutTask </h2> 5454 <p> Uploads an object to Amazon S3. This task requires the PEAR package <a 5455 href="http://pear.php.net/package/Services_Amazon_S3" title="Services_Amazon_S3" 5456 target="_blank">Services_Amazon_S3</a> 5457 </p> 5458 <h3>Examples</h3> 5459 <p>Uploading a file</p> 5460 <pre><s3put source="/path/to/file.txt" object="file.txt" bucket="mybucket" key="AmazonKey" secret="AmazonSecret" /></pre> 5461 <p>You can also define "bucket, key, secret" outside of the task call:</p> 5462 <pre> 5770 5463 <property name="amazon.key" value="my_key" /> 5771 5464 <property name="amazon.secret" value="my_secret" /> … … 5774 5467 <s3put source="/path/to/file.txt" object="file.txt" /> 5775 5468 </pre> 5776 <p>You can also specify inline content instead of a file to upload:</p>5777 <pre>5469 <p>You can also specify inline content instead of a file to upload:</p> 5470 <pre> 5778 5471 <property name="amazon.key" value="my_key" /> 5779 5472 <property name="amazon.secret" value="my_secret" /> … … 5782 5475 <s3put content="Some content here" object="file.txt" /> 5783 5476 </pre> 5784 <p>It also works with filesets</p>5785 <pre>5477 <p>It also works with filesets</p> 5478 <pre> 5786 5479 <property name="amazon.key" value="my_key" /> 5787 5480 <property name="amazon.secret" value="my_secret" /> … … 5793 5486 </s3put> 5794 5487 </pre> 5795 <h3>Attributes</h3> 5796 <table> 5797 <thead> 5798 <tr> 5799 <th>Name</th> 5800 <th>Type</th> 5801 <th>Description</th> 5802 <th>Default</th> 5803 <th>Required</th> 5804 </tr> 5805 </thead> 5806 <tbody> 5807 <tr> 5808 <td>key</td> 5809 <td>String</td> 5810 <td>Amazon S3 key</td> 5811 <td>n/a</td> 5812 <td>Yes (or defined before task call as: amazon.key)</td> 5813 </tr> 5814 <tr> 5815 <td>secret</td> 5816 <td>String</td> 5817 <td>Amazon S3 secret</td> 5818 <td>n/a</td> 5819 <td>Yes (or defined before task call as: amazon.secret)</td> 5820 </tr> 5821 <tr> 5822 <td>bucket</td> 5823 <td>String</td> 5824 <td>Bucket to store the object in</td> 5825 <td>n/a</td> 5826 <td>Yes (or defined before task call as: amazon.bucket)</td> 5827 </tr> 5828 <tr> 5829 <td>content</td> 5830 <td>String</td> 5831 <td>Content to store in the object</td> 5832 <td>n/a</td> 5833 <td>Yes (or source or fileset)</td> 5834 </tr> 5835 <tr> 5836 <td>source</td> 5837 <td>String</td> 5838 <td>Where to read content for the object from</td> 5839 <td>n/a</td> 5840 <td>Yes (or content or fileset)</td> 5841 </tr> 5842 <tr> 5843 <td>object</td> 5844 <td>String</td> 5845 <td>Object name</td> 5846 <td>n/a</td> 5847 <td>Yes (unless fileset)</td> 5848 </tr> 5849 </tbody> 5850 </table> 5851 5852 <h3>Supported Nested Tags</h3> 5853 <ul> 5854 <li>fileset</li> 5855 </ul> 5856 5857 <h2> 5858 <a name="S3GetTask"></a>S3GetTask 5859 </h2> 5860 <p> 5861 Downloads an object from Amazon S3. This task requires the PEAR 5862 package <a href="http://pear.php.net/package/Services_Amazon_S3" 5863 title="Services_Amazon_S3" target="_blank">Services_Amazon_S3</a> 5864 </p> 5865 <h3>Examples</h3> 5866 <p>Downloading an object</p> 5867 <pre> 5488 <h3>Attributes</h3> 5489 <table> 5490 <thead> 5491 <tr> 5492 <th>Name</th> 5493 <th>Type</th> 5494 <th>Description</th> 5495 <th>Default</th> 5496 <th>Required</th> 5497 </tr> 5498 </thead> 5499 <tbody> 5500 <tr> 5501 <td>key</td> 5502 <td>String</td> 5503 <td>Amazon S3 key</td> 5504 <td>n/a</td> 5505 <td>Yes (or defined before task call as: amazon.key)</td> 5506 </tr> 5507 <tr> 5508 <td>secret</td> 5509 <td>String</td> 5510 <td>Amazon S3 secret</td> 5511 <td>n/a</td> 5512 <td>Yes (or defined before task call as: amazon.secret)</td> 5513 </tr> 5514 <tr> 5515 <td>bucket</td> 5516 <td>String</td> 5517 <td>Bucket to store the object in</td> 5518 <td>n/a</td> 5519 <td>Yes (or defined before task call as: amazon.bucket)</td> 5520 </tr> 5521 <tr> 5522 <td>content</td> 5523 <td>String</td> 5524 <td>Content to store in the object</td> 5525 <td>n/a</td> 5526 <td>Yes (or source or fileset)</td> 5527 </tr> 5528 <tr> 5529 <td>source</td> 5530 <td>String</td> 5531 <td>Where to read content for the object from</td> 5532 <td>n/a</td> 5533 <td>Yes (or content or fileset)</td> 5534 </tr> 5535 <tr> 5536 <td>object</td> 5537 <td>String</td> 5538 <td>Object name</td> 5539 <td>n/a</td> 5540 <td>Yes (unless fileset)</td> 5541 </tr> 5542 </tbody> 5543 </table> 5544 <h3>Supported Nested Tags</h3> 5545 <ul> 5546 <li>fileset</li> 5547 </ul> 5548 <h2> 5549 <a name="S3GetTask"></a>S3GetTask </h2> 5550 <p> Downloads an object from Amazon S3. This task requires the PEAR package <a 5551 href="http://pear.php.net/package/Services_Amazon_S3" title="Services_Amazon_S3" 5552 target="_blank">Services_Amazon_S3</a> 5553 </p> 5554 <h3>Examples</h3> 5555 <p>Downloading an object</p> 5556 <pre> 5868 5557 <s3get object="file.txt" target="${project.basedir}" bucket="mybucket" key="AmazonKey" secret="AmazonSecret" /> 5869 5558 </pre> 5870 <p>You can also define "bucket, key, secret" outside of the task 5871 call:</p> 5872 <pre> 5559 <p>You can also define "bucket, key, secret" outside of the task call:</p> 5560 <pre> 5873 5561 <property name="amazon.key" value="my_key" /> 5874 5562 <property name="amazon.secret" value="my_secret" /> … … 5877 5565 <s3get object="file.txt" target="${project.basedir}" /> 5878 5566 </pre> 5879 <h3>Attributes</h3> 5880 <table> 5881 <thead> 5882 <tr> 5883 <th>Name</th> 5884 <th>Type</th> 5885 <th>Description</th> 5886 <th>Default</th> 5887 <th>Required</th> 5888 </tr> 5889 </thead> 5890 <tbody> 5891 <tr> 5892 <td>key</td> 5893 <td>String</td> 5894 <td>Amazon S3 key</td> 5895 <td>n/a</td> 5896 <td>Yes (or defined before task call as: amazon.key)</td> 5897 </tr> 5898 <tr> 5899 <td>secret</td> 5900 <td>String</td> 5901 <td>Amazon S3 secret</td> 5902 <td>n/a</td> 5903 <td>Yes (or defined before task call as: amazon.secret)</td> 5904 </tr> 5905 <tr> 5906 <td>bucket</td> 5907 <td>String</td> 5908 <td>Bucket containing the object</td> 5909 <td>n/a</td> 5910 <td>Yes (or defined before task call as: amazon.bucket)</td> 5911 </tr> 5912 <tr> 5913 <td>object</td> 5914 <td>String</td> 5915 <td>Object name</td> 5916 <td>n/a</td> 5917 <td>Yes</td> 5918 </tr> 5919 <tr> 5920 <td>target</td> 5921 <td>String</td> 5922 <td>Where to store the object after download</td> 5923 <td>n/a</td> 5924 <td>Yes</td> 5925 </tr> 5926 </tbody> 5927 </table> 5928 5929 <h2> 5930 <a name="ScpTask"></a>ScpTask 5931 </h2> 5932 <p> 5933 The <em>ScpTask</em> copies files to and from a remote host using scp. 5934 This task requires the <a href="http://pecl.php.net/package/ssh2" 5935 target="_blank">PHP SSH2 extension</a> to function. 5936 </p> 5937 <h3>Examples</h3> 5938 <pre><scp username="john" password="smith" 5567 <h3>Attributes</h3> 5568 <table> 5569 <thead> 5570 <tr> 5571 <th>Name</th> 5572 <th>Type</th> 5573 <th>Description</th> 5574 <th>Default</th> 5575 <th>Required</th> 5576 </tr> 5577 </thead> 5578 <tbody> 5579 <tr> 5580 <td>key</td> 5581 <td>String</td> 5582 <td>Amazon S3 key</td> 5583 <td>n/a</td> 5584 <td>Yes (or defined before task call as: amazon.key)</td> 5585 </tr> 5586 <tr> 5587 <td>secret</td> 5588 <td>String</td> 5589 <td>Amazon S3 secret</td> 5590 <td>n/a</td> 5591 <td>Yes (or defined before task call as: amazon.secret)</td> 5592 </tr> 5593 <tr> 5594 <td>bucket</td> 5595 <td>String</td> 5596 <td>Bucket containing the object</td> 5597 <td>n/a</td> 5598 <td>Yes (or defined before task call as: amazon.bucket)</td> 5599 </tr> 5600 <tr> 5601 <td>object</td> 5602 <td>String</td> 5603 <td>Object name</td> 5604 <td>n/a</td> 5605 <td>Yes</td> 5606 </tr> 5607 <tr> 5608 <td>target</td> 5609 <td>String</td> 5610 <td>Where to store the object after download</td> 5611 <td>n/a</td> 5612 <td>Yes</td> 5613 </tr> 5614 </tbody> 5615 </table> 5616 <h2> 5617 <a name="ScpTask"></a>ScpTask </h2> 5618 <p> The <em>ScpTask</em> copies files to and from a remote host using scp. This task 5619 requires the <a href="http://pecl.php.net/package/ssh2" target="_blank">PHP SSH2 5620 extension</a> to function. </p> 5621 <h3>Examples</h3> 5622 <pre><scp username="john" password="smith" 5939 5623 host="webserver" fetch="true" 5940 5624 todir="/home/john/backup" 5941 5625 file="/www/htdocs/test.html" /></pre> 5942 <p>Fetches a single file from the remote server.</p> 5943 5944 <pre><scp username="john" password="smith" 5626 <p>Fetches a single file from the remote server.</p> 5627 <pre><scp username="john" password="smith" 5945 5628 host="webserver" 5946 5629 todir="/www/htdocs/" 5947 5630 file="/home/john/dev/test.html" /></pre> 5948 <p>Copies a single file to the remote server.</p> 5949 5950 <pre><scp username="john" password="smith" 5631 <p>Copies a single file to the remote server.</p> 5632 <pre><scp username="john" password="smith" 5951 5633 host="webserver" todir="/www/htdocs/project/"> 5952 5634 <fileset dir="test"> … … 5954 5636 </fileset> 5955 5637 </scp></pre> 5956 <p>Copies multiple files to the remote server.</p> 5957 5958 <h3>Attributes</h3> 5959 <table> 5960 <thead> 5961 <tr> 5962 <th>Name</th> 5963 <th>Type</th> 5964 <th>Description</th> 5965 <th>Default</th> 5966 <th>Required</th> 5967 </tr> 5968 </thead> 5969 <tbody> 5970 <tr> 5971 <td>host</td> 5972 <td>String</td> 5973 <td>Remote host</td> 5974 <td>none</td> 5975 <td>Yes</td> 5976 </tr> 5977 <tr> 5978 <td>port</td> 5979 <td>Integer</td> 5980 <td>Remote port</td> 5981 <td>22</td> 5982 <td>No</td> 5983 </tr> 5984 <tr> 5985 <td>username</td> 5986 <td>String</td> 5987 <td>Username to use for the connection</td> 5988 <td>none</td> 5989 <td>Yes</td> 5990 </tr> 5991 <tr> 5992 <td>password</td> 5993 <td>String</td> 5994 <td>Password to use for the connection</td> 5995 <td>none</td> 5996 <td>No</td> 5997 </tr> 5998 <tr> 5999 <td>pubkeyfile</td> 6000 <td>String</td> 6001 <td>Public key file to use for the connection</td> 6002 <td>none</td> 6003 <td>No</td> 6004 </tr> 6005 <tr> 6006 <td>privkeyfile</td> 6007 <td>String</td> 6008 <td>Private key file to use for the connection</td> 6009 <td>none</td> 6010 <td>No</td> 6011 </tr> 6012 <tr> 6013 <td>privkeyfilepassphrase</td> 6014 <td>String</td> 6015 <td>Private key file passphrase to use for the connection</td> 6016 <td>none</td> 6017 <td>No</td> 6018 </tr> 6019 <tr> 6020 <td>autocreate</td> 6021 <td>Boolean</td> 6022 <td>Whether to autocreate remote directories</td> 6023 <td>true</td> 6024 <td>No</td> 6025 </tr> 6026 <tr> 6027 <td>todir</td> 6028 <td>String</td> 6029 <td>Directory to put file(s) in</td> 6030 <td>none</td> 6031 <td>No</td> 6032 </tr> 6033 <tr> 6034 <td>file</td> 6035 <td>String</td> 6036 <td>Filename to use</td> 6037 <td>none</td> 6038 <td>No</td> 6039 </tr> 6040 <tr> 6041 <td>fetch</td> 6042 <td>Boolean</td> 6043 <td>Whether to fetch (instead of copy to) the file</td> 6044 <td>false</td> 6045 <td>No</td> 6046 </tr> 6047 <tr> 6048 <td>level</td> 6049 <td>String</td> 6050 <td>Control the level at which the task reports status 6051 messages. One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 6052 <em>debug</em>.</td> 6053 <td><em>verbose</em></td> 6054 <td>No</td> 6055 </tr> 6056 </tbody> 6057 </table> 6058 <h3>Supported Nested Tags</h3> 6059 <ul> 6060 <li>fileset</li> 6061 </ul> 6062 6063 <h2> 6064 <a name="SshTask"></a>SshTask 6065 </h2> 6066 <p> 6067 The <em>ScpTask</em> executes commands on a remote host using ssh.. 6068 This task requires the <a href="http://pecl.php.net/package/ssh2" 6069 target="_blank">PHP SSH2 extension</a> to function. 6070 </p> 6071 <h3>Examples</h3> 6072 <pre><ssh username="john" password="smith" 5638 <p>Copies multiple files to the remote server.</p> 5639 <h3>Attributes</h3> 5640 <table> 5641 <thead> 5642 <tr> 5643 <th>Name</th> 5644 <th>Type</th> 5645 <th>Description</th> 5646 <th>Default</th> 5647 <th>Required</th> 5648 </tr> 5649 </thead> 5650 <tbody> 5651 <tr> 5652 <td>host</td> 5653 <td>String</td> 5654 <td>Remote host</td> 5655 <td>none</td> 5656 <td>Yes</td> 5657 </tr> 5658 <tr> 5659 <td>port</td> 5660 <td>Integer</td> 5661 <td>Remote port</td> 5662 <td>22</td> 5663 <td>No</td> 5664 </tr> 5665 <tr> 5666 <td>username</td> 5667 <td>String</td> 5668 <td>Username to use for the connection</td> 5669 <td>none</td> 5670 <td>Yes</td> 5671 </tr> 5672 <tr> 5673 <td>password</td> 5674 <td>String</td> 5675 <td>Password to use for the connection</td> 5676 <td>none</td> 5677 <td>No</td> 5678 </tr> 5679 <tr> 5680 <td>pubkeyfile</td> 5681 <td>String</td> 5682 <td>Public key file to use for the connection</td> 5683 <td>none</td> 5684 <td>No</td> 5685 </tr> 5686 <tr> 5687 <td>privkeyfile</td> 5688 <td>String</td> 5689 <td>Private key file to use for the connection</td> 5690 <td>none</td> 5691 <td>No</td> 5692 </tr> 5693 <tr> 5694 <td>privkeyfilepassphrase</td> 5695 <td>String</td> 5696 <td>Private key file passphrase to use for the connection</td> 5697 <td>none</td> 5698 <td>No</td> 5699 </tr> 5700 <tr> 5701 <td>autocreate</td> 5702 <td>Boolean</td> 5703 <td>Whether to autocreate remote directories</td> 5704 <td>true</td> 5705 <td>No</td> 5706 </tr> 5707 <tr> 5708 <td>todir</td> 5709 <td>String</td> 5710 <td>Directory to put file(s) in</td> 5711 <td>none</td> 5712 <td>No</td> 5713 </tr> 5714 <tr> 5715 <td>file</td> 5716 <td>String</td> 5717 <td>Filename to use</td> 5718 <td>none</td> 5719 <td>No</td> 5720 </tr> 5721 <tr> 5722 <td>fetch</td> 5723 <td>Boolean</td> 5724 <td>Whether to fetch (instead of copy to) the file</td> 5725 <td>false</td> 5726 <td>No</td> 5727 </tr> 5728 <tr> 5729 <td>level</td> 5730 <td>String</td> 5731 <td>Control the level at which the task reports status messages. One of 5732 <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 5733 <em>debug</em>.</td> 5734 <td><em>verbose</em></td> 5735 <td>No</td> 5736 </tr> 5737 </tbody> 5738 </table> 5739 <h3>Supported Nested Tags</h3> 5740 <ul> 5741 <li>fileset</li> 5742 </ul> 5743 <h2> 5744 <a name="SshTask"></a>SshTask </h2> 5745 <p> The <em>ScpTask</em> executes commands on a remote host using ssh.. This task requires 5746 the <a href="http://pecl.php.net/package/ssh2" target="_blank">PHP SSH2 extension</a> to 5747 function. </p> 5748 <h3>Examples</h3> 5749 <pre><ssh username="john" password="smith" 6073 5750 host="webserver" command="ls" /></pre> 6074 <p>Executes a single command on the remote server.</p> 6075 6076 <h3>Attributes</h3> 6077 <table> 6078 <thead> 6079 <tr> 6080 <th>Name</th> 6081 <th>Type</th> 6082 <th>Description</th> 6083 <th>Default</th> 6084 <th>Required</th> 6085 </tr> 6086 </thead> 6087 <tbody> 6088 <tr> 6089 <td>host</td> 6090 <td>String</td> 6091 <td>Remote host</td> 6092 <td>none</td> 6093 <td>Yes</td> 6094 </tr> 6095 <tr> 6096 <td>port</td> 6097 <td>Integer</td> 6098 <td>Remote port</td> 6099 <td>22</td> 6100 <td>No</td> 6101 </tr> 6102 <tr> 6103 <td>username</td> 6104 <td>String</td> 6105 <td>Username to use for the connection</td> 6106 <td>none</td> 6107 <td>Yes</td> 6108 </tr> 6109 <tr> 6110 <td>password</td> 6111 <td>String</td> 6112 <td>Password to use for the connection</td> 6113 <td>none</td> 6114 <td>No</td> 6115 </tr> 6116 <tr> 6117 <td>pubkeyfile</td> 6118 <td>String</td> 6119 <td>Public key file to use for the connection</td> 6120 <td>none</td> 6121 <td>No</td> 6122 </tr> 6123 <tr> 6124 <td>privkeyfile</td> 6125 <td>String</td> 6126 <td>Private key file to use for the connection</td> 6127 <td>none</td> 6128 <td>No</td> 6129 </tr> 6130 <tr> 6131 <td>privkeyfilepassphrase</td> 6132 <td>String</td> 6133 <td>Private key file passphrase to use for the connection</td> 6134 <td>none</td> 6135 <td>No</td> 6136 </tr> 6137 <tr> 6138 <td>command</td> 6139 <td>String</td> 6140 <td>Command to execute on the remote server</td> 6141 <td>none</td> 6142 <td>Yes</td> 6143 </tr> 6144 <tr> 6145 <td>property</td> 6146 <td>String</td> 6147 <td>The name of the property to capture (any) output of the 6148 command</td> 6149 <td>none</td> 6150 <td>No</td> 6151 </tr> 6152 <tr> 6153 <td>display</td> 6154 <td>Boolean</td> 6155 <td>Whether to display the output of the command</td> 6156 <td>true</td> 6157 <td>No</td> 6158 </tr> 6159 </tbody> 6160 </table> 6161 6162 <h2> 6163 <a name="SimpleTestTask"></a>SimpleTestTask 6164 </h2> 6165 <p> 6166 This task runs testcases using the <a 6167 href="http://www.simpletest.org/" target="_blank">SimpleTest</a> 6168 framework. 6169 </p> 6170 <h3>Attributes</h3> 6171 <table> 6172 <thead> 6173 <tr> 6174 <th>Name</th> 6175 <th>Type</th> 6176 <th>Description</th> 6177 <th>Default</th> 6178 <th>Required</th> 6179 </tr> 6180 </thead> 6181 <tbody> 6182 <tr> 6183 <td>printsummary</td> 6184 <td>Boolean</td> 6185 <td>Print one-line statistics for each testcase.</td> 6186 <td>false</td> 6187 <td>No</td> 6188 </tr> 6189 <tr> 6190 <td>haltonerror</td> 6191 <td>Boolean</td> 6192 <td>Stop the build process if an error occurs during the test 6193 run.</td> 6194 <td>false</td> 6195 <td>No</td> 6196 </tr> 6197 <tr> 6198 <td>haltonfailure</td> 6199 <td>Boolean</td> 6200 <td>Stop the build process if a test fails (errors are 6201 considered failures as well).</td> 6202 <td>false</td> 6203 <td>No</td> 6204 </tr> 6205 <tr> 6206 <td>failureproperty</td> 6207 <td>String</td> 6208 <td>Name of property to set (to true) on failure.</td> 6209 <td>n/a</td> 6210 <td>No</td> 6211 </tr> 6212 <tr> 6213 <td>errorproperty</td> 6214 <td>String</td> 6215 <td>Name of property to set (to true) on error.</td> 6216 <td>n/a</td> 6217 <td>No</td> 6218 </tr> 6219 <tr> 6220 <td>debug</td> 6221 <td>Boolean</td> 6222 <td>Switch debugging on/off</td> 6223 <td>false</td> 6224 <td>No</td> 6225 </tr> 6226 </tbody> 6227 </table> 6228 <h3>Supported Nested Tags</h3> 6229 <ul> 6230 <li>formatter 6231 <p> 6232 The results of the tests can be printed in different formats. Output 6233 will always be sent to a file, unless you set the <em>usefile</em> 6234 attribute to <em>false</em>. The name of the file is predetermined 6235 by the formatter and can be changed by the <em>outfile</em> 6236 attribute. 6237 </p> 6238 <p>There are three predefined formatters - one prints the test 6239 results in XML format, the other emits plain text. The formatter 6240 named brief will only print detailed information for testcases that 6241 failed, while plain gives a little statistics line for all test 6242 cases. Custom formatters that implement 6243 phing.tasks.ext.PHPUnitResultFormatter can be specified.</p> 6244 <p>If you use the XML formatter, it may not include the same 6245 output that your tests have written as some characters are illegal 6246 in XML documents and will be dropped.</p> 6247 <h3>Attributes</h3> 6248 <table> 6249 <thead> 6250 <tr> 6251 <th>Name</th> 6252 <th>Type</th> 6253 <th>Description</th> 6254 <th>Default</th> 6255 <th>Required</th> 6256 </tr> 6257 </thead> 6258 <tbody> 6259 <tr> 6260 <td>type</td> 6261 <td>String</td> 6262 <td>Use a predefined formatter (either <em>xml</em>, <em>plain</em>, 6263 or <em>summary</em>).</td> 6264 <td>n/a</td> 6265 <td rowspan="2">One of these is required.</td> 6266 </tr> 6267 <tr> 6268 <td>classname</td> 6269 <td>String</td> 6270 <td>Name of a custom formatter class.</td> 6271 <td>n/a</td> 6272 </tr> 6273 <tr> 6274 <td>usefile</td> 6275 <td>Boolean</td> 6276 <td>Boolean that determines whether output should be sent to 6277 a file.</td> 6278 <td>true</td> 6279 <td>No</td> 6280 </tr> 6281 <tr> 6282 <td>todir</td> 6283 <td>String</td> 6284 <td>Directory to write the file to.</td> 6285 <td>n/a</td> 6286 <td>No</td> 6287 </tr> 6288 <tr> 6289 <td>outfile</td> 6290 <td>String</td> 6291 <td>Filename of the result.</td> 6292 <td>Depends on formatter</td> 6293 <td>No</td> 6294 </tr> 6295 </tbody> 6296 </table></li> 6297 <li>fileset</li> 6298 </ul> 6299 <h3>Examples</h3> 6300 <pre><simpletest> 5751 <p>Executes a single command on the remote server.</p> 5752 <h3>Attributes</h3> 5753 <table> 5754 <thead> 5755 <tr> 5756 <th>Name</th> 5757 <th>Type</th> 5758 <th>Description</th> 5759 <th>Default</th> 5760 <th>Required</th> 5761 </tr> 5762 </thead> 5763 <tbody> 5764 <tr> 5765 <td>host</td> 5766 <td>String</td> 5767 <td>Remote host</td> 5768 <td>none</td> 5769 <td>Yes</td> 5770 </tr> 5771 <tr> 5772 <td>port</td> 5773 <td>Integer</td> 5774 <td>Remote port</td> 5775 <td>22</td> 5776 <td>No</td> 5777 </tr> 5778 <tr> 5779 <td>username</td> 5780 <td>String</td> 5781 <td>Username to use for the connection</td> 5782 <td>none</td> 5783 <td>Yes</td> 5784 </tr> 5785 <tr> 5786 <td>password</td> 5787 <td>String</td> 5788 <td>Password to use for the connection</td> 5789 <td>none</td> 5790 <td>No</td> 5791 </tr> 5792 <tr> 5793 <td>pubkeyfile</td> 5794 <td>String</td> 5795 <td>Public key file to use for the connection</td> 5796 <td>none</td> 5797 <td>No</td> 5798 </tr> 5799 <tr> 5800 <td>privkeyfile</td> 5801 <td>String</td> 5802 <td>Private key file to use for the connection</td> 5803 <td>none</td> 5804 <td>No</td> 5805 </tr> 5806 <tr> 5807 <td>privkeyfilepassphrase</td> 5808 <td>String</td> 5809 <td>Private key file passphrase to use for the connection</td> 5810 <td>none</td> 5811 <td>No</td> 5812 </tr> 5813 <tr> 5814 <td>command</td> 5815 <td>String</td> 5816 <td>Command to execute on the remote server</td> 5817 <td>none</td> 5818 <td>Yes</td> 5819 </tr> 5820 <tr> 5821 <td>property</td> 5822 <td>String</td> 5823 <td>The name of the property to capture (any) output of the command</td> 5824 <td>none</td> 5825 <td>No</td> 5826 </tr> 5827 <tr> 5828 <td>display</td> 5829 <td>Boolean</td> 5830 <td>Whether to display the output of the command</td> 5831 <td>true</td> 5832 <td>No</td> 5833 </tr> 5834 </tbody> 5835 </table> 5836 <h2> 5837 <a name="SimpleTestTask"></a>SimpleTestTask </h2> 5838 <p> This task runs testcases using the <a href="http://www.simpletest.org/" target="_blank" 5839 >SimpleTest</a> framework. </p> 5840 <h3>Attributes</h3> 5841 <table> 5842 <thead> 5843 <tr> 5844 <th>Name</th> 5845 <th>Type</th> 5846 <th>Description</th> 5847 <th>Default</th> 5848 <th>Required</th> 5849 </tr> 5850 </thead> 5851 <tbody> 5852 <tr> 5853 <td>printsummary</td> 5854 <td>Boolean</td> 5855 <td>Print one-line statistics for each testcase.</td> 5856 <td>false</td> 5857 <td>No</td> 5858 </tr> 5859 <tr> 5860 <td>haltonerror</td> 5861 <td>Boolean</td> 5862 <td>Stop the build process if an error occurs during the test run.</td> 5863 <td>false</td> 5864 <td>No</td> 5865 </tr> 5866 <tr> 5867 <td>haltonfailure</td> 5868 <td>Boolean</td> 5869 <td>Stop the build process if a test fails (errors are considered failures as 5870 well).</td> 5871 <td>false</td> 5872 <td>No</td> 5873 </tr> 5874 <tr> 5875 <td>failureproperty</td> 5876 <td>String</td> 5877 <td>Name of property to set (to true) on failure.</td> 5878 <td>n/a</td> 5879 <td>No</td> 5880 </tr> 5881 <tr> 5882 <td>errorproperty</td> 5883 <td>String</td> 5884 <td>Name of property to set (to true) on error.</td> 5885 <td>n/a</td> 5886 <td>No</td> 5887 </tr> 5888 <tr> 5889 <td>debug</td> 5890 <td>Boolean</td> 5891 <td>Switch debugging on/off</td> 5892 <td>false</td> 5893 <td>No</td> 5894 </tr> 5895 </tbody> 5896 </table> 5897 <h3>Supported Nested Tags</h3> 5898 <ul> 5899 <li>formatter <p> The results of the tests can be printed in different formats. Output 5900 will always be sent to a file, unless you set the <em>usefile</em> attribute to 5901 <em>false</em>. The name of the file is predetermined by the formatter and 5902 can be changed by the <em>outfile</em> attribute. </p> 5903 <p>There are three predefined formatters - one prints the test results in XML 5904 format, the other emits plain text. The formatter named brief will only print 5905 detailed information for testcases that failed, while plain gives a little 5906 statistics line for all test cases. Custom formatters that implement 5907 phing.tasks.ext.PHPUnitResultFormatter can be specified.</p> 5908 <p>If you use the XML formatter, it may not include the same output that your tests 5909 have written as some characters are illegal in XML documents and will be 5910 dropped.</p> 5911 <h3>Attributes</h3> 5912 <table> 5913 <thead> 5914 <tr> 5915 <th>Name</th> 5916 <th>Type</th> 5917 <th>Description</th> 5918 <th>Default</th> 5919 <th>Required</th> 5920 </tr> 5921 </thead> 5922 <tbody> 5923 <tr> 5924 <td>type</td> 5925 <td>String</td> 5926 <td>Use a predefined formatter (either <em>xml</em>, <em>plain</em>, or 5927 <em>summary</em>).</td> 5928 <td>n/a</td> 5929 <td rowspan="2">One of these is required.</td> 5930 </tr> 5931 <tr> 5932 <td>classname</td> 5933 <td>String</td> 5934 <td>Name of a custom formatter class.</td> 5935 <td>n/a</td> 5936 </tr> 5937 <tr> 5938 <td>usefile</td> 5939 <td>Boolean</td> 5940 <td>Boolean that determines whether output should be sent to a 5941 file.</td> 5942 <td>true</td> 5943 <td>No</td> 5944 </tr> 5945 <tr> 5946 <td>todir</td> 5947 <td>String</td> 5948 <td>Directory to write the file to.</td> 5949 <td>n/a</td> 5950 <td>No</td> 5951 </tr> 5952 <tr> 5953 <td>outfile</td> 5954 <td>String</td> 5955 <td>Filename of the result.</td> 5956 <td>Depends on formatter</td> 5957 <td>No</td> 5958 </tr> 5959 </tbody> 5960 </table></li> 5961 <li>fileset</li> 5962 </ul> 5963 <h3>Examples</h3> 5964 <pre><simpletest> 6301 5965 <formatter type="plain"/> 6302 5966 <fileset dir="tests"> … … 6306 5970 </simpletest> 6307 5971 </pre> 6308 <p> 6309 Runs all matching testcases in the directory <em>tests</em>, writing 6310 plain text results to the console. 6311 </p> 6312 <pre><simpletest haltonfailure="true" haltonerror="true"> 5972 <p> Runs all matching testcases in the directory <em>tests</em>, writing plain text results 5973 to the console. </p> 5974 <pre><simpletest haltonfailure="true" haltonerror="true"> 6313 5975 <formatter type="plain" usefile="false"/> 6314 5976 <fileset dir="tests"> … … 6317 5979 </simpletest> 6318 5980 </pre> 6319 <p> 6320 Runs all matching testcases in the directory <em>tests</em>, writing 6321 plain text results to the console. The build process is aborted if a 6322 test fails. 6323 </p> 6324 <h2> 6325 <a name="SvnCheckoutTask"></a>SvnCheckoutTask 6326 </h2> 6327 <p> 6328 The <em>SvnCheckoutTask</em> checks out a Subversion repository to a 6329 local directory. 6330 </p> 6331 <h3>Examples</h3> 6332 <pre><svncheckout 5981 <p> Runs all matching testcases in the directory <em>tests</em>, writing plain text results 5982 to the console. The build process is aborted if a test fails. </p> 5983 <h2> 5984 <a name="SvnCheckoutTask"></a>SvnCheckoutTask </h2> 5985 <p> The <em>SvnCheckoutTask</em> checks out a Subversion repository to a local directory. </p> 5986 <h3>Examples</h3> 5987 <pre><svncheckout 6333 5988 svnpath="/usr/bin/svn" 6334 5989 username="anony" … … 6338 5993 todir="/home/user/svnwc"/> 6339 5994 </pre> 6340 <pre><svncheckout5995 <pre><svncheckout 6341 5996 svnpath="C:/Subversion/bin/svn.exe" 6342 5997 repositoryurl="svn://localhost/project/trunk/" 6343 5998 todir="C:/projects/svnwc"/> 6344 5999 </pre> 6345 <h3>Attributes</h3> 6346 <table> 6347 <thead> 6348 <tr> 6349 <th>Name</th> 6350 <th>Type</th> 6351 <th>Description</th> 6352 <th>Default</th> 6353 <th>Required</th> 6354 </tr> 6355 </thead> 6356 <tbody> 6357 <tr> 6358 <td>svnpath</td> 6359 <td>String</td> 6360 <td>Path to Subversion binary</td> 6361 <td>/usr/bin/svn</td> 6362 <td>No</td> 6363 </tr> 6364 <tr> 6365 <td>repositoryurl</td> 6366 <td>String</td> 6367 <td>URL of SVN repository</td> 6368 <td>none</td> 6369 <td>Yes</td> 6370 </tr> 6371 <tr> 6372 <td>username</td> 6373 <td>String</td> 6374 <td>A username used to connect to the SVN server</td> 6375 <td>none</td> 6376 <td>No</td> 6377 </tr> 6378 <tr> 6379 <td>password</td> 6380 <td>String</td> 6381 <td>A password used to connect to the SVN server</td> 6382 <td>none</td> 6383 <td>No</td> 6384 </tr> 6385 <tr> 6386 <td>nocache</td> 6387 <td>Boolean</td> 6388 <td>Connection credentials will not be cached</td> 6389 <td>False</td> 6390 <td>No</td> 6391 </tr> 6392 <tr> 6393 <td>todir</td> 6394 <td>String</td> 6395 <td>Path to export to</td> 6396 <td>none</td> 6397 <td>Yes</td> 6398 </tr> 6399 <tr> 6400 <td>recursive</td> 6401 <td>Boolean</td> 6402 <td>Recursive behavior</td> 6403 <td>true</td> 6404 <td>No</td> 6405 </tr> 6406 <tr> 6407 <td>ignoreexternals</td> 6408 <td>Boolean</td> 6409 <td>Ignore externals definitions</td> 6410 <td>false</td> 6411 <td>No</td> 6412 </tr> 6413 <tr> 6414 <td>trustServerCert</td> 6415 <td>Boolean</td> 6416 <td>Trust self-signed certificates</td> 6417 <td>False</td> 6418 <td>No</td> 6419 </tr> 6420 </tbody> 6421 </table> 6422 6423 <h2> 6424 <a name="SvnCommitTask"></a>SvnCommitTask 6425 </h2> 6426 <p> 6427 The <em>SvnCommitTask</em> commits a local working copy to a SVN 6428 repository and sets the specified property ( default <em>svn.committedrevision</em>) 6429 to the revision number of the committed revision. 6430 </p> 6431 <h3>Examples</h3> 6432 <pre><svncommit 6000 <h3>Attributes</h3> 6001 <table> 6002 <thead> 6003 <tr> 6004 <th>Name</th> 6005 <th>Type</th> 6006 <th>Description</th> 6007 <th>Default</th> 6008 <th>Required</th> 6009 </tr> 6010 </thead> 6011 <tbody> 6012 <tr> 6013 <td>svnpath</td> 6014 <td>String</td> 6015 <td>Path to Subversion binary</td> 6016 <td>/usr/bin/svn</td> 6017 <td>No</td> 6018 </tr> 6019 <tr> 6020 <td>repositoryurl</td> 6021 <td>String</td> 6022 <td>URL of SVN repository</td> 6023 <td>none</td> 6024 <td>Yes</td> 6025 </tr> 6026 <tr> 6027 <td>username</td> 6028 <td>String</td> 6029 <td>A username used to connect to the SVN server</td> 6030 <td>none</td> 6031 <td>No</td> 6032 </tr> 6033 <tr> 6034 <td>password</td> 6035 <td>String</td> 6036 <td>A password used to connect to the SVN server</td> 6037 <td>none</td> 6038 <td>No</td> 6039 </tr> 6040 <tr> 6041 <td>nocache</td> 6042 <td>Boolean</td> 6043 <td>Connection credentials will not be cached</td> 6044 <td>False</td> 6045 <td>No</td> 6046 </tr> 6047 <tr> 6048 <td>todir</td> 6049 <td>String</td> 6050 <td>Path to export to</td> 6051 <td>none</td> 6052 <td>Yes</td> 6053 </tr> 6054 <tr> 6055 <td>recursive</td> 6056 <td>Boolean</td> 6057 <td>Recursive behavior</td> 6058 <td>true</td> 6059 <td>No</td> 6060 </tr> 6061 <tr> 6062 <td>ignoreexternals</td> 6063 <td>Boolean</td> 6064 <td>Ignore externals definitions</td> 6065 <td>false</td> 6066 <td>No</td> 6067 </tr> 6068 <tr> 6069 <td>trustServerCert</td> 6070 <td>Boolean</td> 6071 <td>Trust self-signed certificates</td> 6072 <td>False</td> 6073 <td>No</td> 6074 </tr> 6075 </tbody> 6076 </table> 6077 <h2> 6078 <a name="SvnCommitTask"></a>SvnCommitTask </h2> 6079 <p> The <em>SvnCommitTask</em> commits a local working copy to a SVN repository and sets the 6080 specified property ( default <em>svn.committedrevision</em>) to the revision number of 6081 the committed revision. </p> 6082 <h3>Examples</h3> 6083 <pre><svncommit 6433 6084 svnpath="/usr/bin/svn" 6434 6085 username="anony" … … 6438 6089 message="Updated documentation, fixed typos" /> 6439 6090 </pre> 6440 <p>The most basic usage only needs the working copy and the commit 6441 message as in</p> 6442 <pre><svncommit 6091 <p>The most basic usage only needs the working copy and the commit message as in</p> 6092 <pre><svncommit 6443 6093 workingcopy="/home/joe/dev/project" 6444 6094 message="Updated documentation, fixed typos" /> 6445 6095 <echo message="Committed revision: ${svn.committedrevision}"/> 6446 6096 </pre> 6447 <h3>Attributes</h3> 6448 <table> 6449 <thead> 6450 <tr> 6451 <th>Name</th> 6452 <th>Type</th> 6453 <th>Description</th> 6454 <th>Default</th> 6455 <th>Required</th> 6456 </tr> 6457 </thead> 6458 <tbody> 6459 <tr> 6460 <td>svnpath</td> 6461 <td>String</td> 6462 <td>Path to Subversion binary</td> 6463 <td>/usr/bin/svn</td> 6464 <td>No</td> 6465 </tr> 6466 <tr> 6467 <td>username</td> 6468 <td>String</td> 6469 <td>A username used to connect to the SVN server</td> 6470 <td>none</td> 6471 <td>No</td> 6472 </tr> 6473 <tr> 6474 <td>password</td> 6475 <td>String</td> 6476 <td>A password used to connect to the SVN server</td> 6477 <td>none</td> 6478 <td>No</td> 6479 </tr> 6480 <tr> 6481 <td>nocache</td> 6482 <td>Boolean</td> 6483 <td>Connection credentials will not be cached</td> 6484 <td>false</td> 6485 <td>No</td> 6486 </tr> 6487 <tr> 6488 <td>recursive</td> 6489 <td>Boolean</td> 6490 <td>Recurse into all subdirectories</td> 6491 <td>false</td> 6492 <td>No</td> 6493 </tr> 6494 <tr> 6495 <td>workingcopy</td> 6496 <td>String</td> 6497 <td>Working copy</td> 6498 <td>none</td> 6499 <td>Yes</td> 6500 </tr> 6501 <tr> 6502 <td>message</td> 6503 <td>String</td> 6504 <td>The commit message</td> 6505 <td>none</td> 6506 <td>Yes</td> 6507 </tr> 6508 <tr> 6509 <td>ignoreexternals</td> 6510 <td>Boolean</td> 6511 <td>Ignore externals definitions</td> 6512 <td>false</td> 6513 <td>No</td> 6514 </tr> 6515 <tr> 6516 <td>trustServerCert</td> 6517 <td>Boolean</td> 6518 <td>Trust self-signed certificates</td> 6519 <td>False</td> 6520 <td>No</td> 6521 </tr> 6522 <tr> 6523 <td>propertyname</td> 6524 <td>String</td> 6525 <td>Name of property to set to the last committed revision 6526 number</td> 6527 <td>svn.committedrevision</td> 6528 <td>No</td> 6529 </tr> 6530 </tbody> 6531 </table> 6532 6533 <h2> 6534 <a name="SvnCopyTask"></a>SvnCopyTask 6535 </h2> 6536 <p> 6537 The <em>SvnCopyTask</em> duplicates something in a working copy or 6538 repository, remembering history. 6539 </p> 6540 <h3>Examples</h3> 6541 <pre><svncopy 6097 <h3>Attributes</h3> 6098 <table> 6099 <thead> 6100 <tr> 6101 <th>Name</th> 6102 <th>Type</th> 6103 <th>Description</th> 6104 <th>Default</th> 6105 <th>Required</th> 6106 </tr> 6107 </thead> 6108 <tbody> 6109 <tr> 6110 <td>svnpath</td> 6111 <td>String</td> 6112 <td>Path to Subversion binary</td> 6113 <td>/usr/bin/svn</td> 6114 <td>No</td> 6115 </tr> 6116 <tr> 6117 <td>username</td> 6118 <td>String</td> 6119 <td>A username used to connect to the SVN server</td> 6120 <td>none</td> 6121 <td>No</td> 6122 </tr> 6123 <tr> 6124 <td>password</td> 6125 <td>String</td> 6126 <td>A password used to connect to the SVN server</td> 6127 <td>none</td> 6128 <td>No</td> 6129 </tr> 6130 <tr> 6131 <td>nocache</td> 6132 <td>Boolean</td> 6133 <td>Connection credentials will not be cached</td> 6134 <td>false</td> 6135 <td>No</td> 6136 </tr> 6137 <tr> 6138 <td>recursive</td> 6139 <td>Boolean</td> 6140 <td>Recurse into all subdirectories</td> 6141 <td>false</td> 6142 <td>No</td> 6143 </tr> 6144 <tr> 6145 <td>workingcopy</td> 6146 <td>String</td> 6147 <td>Working copy</td> 6148 <td>none</td> 6149 <td>Yes</td> 6150 </tr> 6151 <tr> 6152 <td>message</td> 6153 <td>String</td> 6154 <td>The commit message</td> 6155 <td>none</td> 6156 <td>Yes</td> 6157 </tr> 6158 <tr> 6159 <td>ignoreexternals</td> 6160 <td>Boolean</td> 6161 <td>Ignore externals definitions</td> 6162 <td>false</td> 6163 <td>No</td> 6164 </tr> 6165 <tr> 6166 <td>trustServerCert</td> 6167 <td>Boolean</td> 6168 <td>Trust self-signed certificates</td> 6169 <td>False</td> 6170 <td>No</td> 6171 </tr> 6172 <tr> 6173 <td>propertyname</td> 6174 <td>String</td> 6175 <td>Name of property to set to the last committed revision number</td> 6176 <td>svn.committedrevision</td> 6177 <td>No</td> 6178 </tr> 6179 </tbody> 6180 </table> 6181 <h2> 6182 <a name="SvnCopyTask"></a>SvnCopyTask </h2> 6183 <p> The <em>SvnCopyTask</em> duplicates something in a working copy or repository, 6184 remembering history. </p> 6185 <h3>Examples</h3> 6186 <pre><svncopy 6542 6187 svnpath="/usr/bin/svn" 6543 6188 username="anony" … … 6548 6193 todir="svn://localhost/project/tags/0.1"/> 6549 6194 </pre> 6550 <h3>Attributes</h3> 6551 <table> 6552 <thead> 6553 <tr> 6554 <th>Name</th> 6555 <th>Type</th> 6556 <th>Description</th> 6557 <th>Default</th> 6558 <th>Required</th> 6559 </tr> 6560 </thead> 6561 <tbody> 6562 <tr> 6563 <td>message</td> 6564 <td>String</td> 6565 <td>Log message</td> 6566 <td>n/a</td> 6567 <td>No</td> 6568 </tr> 6569 <tr> 6570 <td>svnpath</td> 6571 <td>String</td> 6572 <td>Path to Subversion binary</td> 6573 <td>/usr/bin/svn</td> 6574 <td>No</td> 6575 </tr> 6576 <tr> 6577 <td>repositoryurl</td> 6578 <td>String</td> 6579 <td>URL of SVN repository</td> 6580 <td>none</td> 6581 <td>Yes</td> 6582 </tr> 6583 <tr> 6584 <td>username</td> 6585 <td>String</td> 6586 <td>A username used to connect to the SVN server</td> 6587 <td>none</td> 6588 <td>No</td> 6589 </tr> 6590 <tr> 6591 <td>password</td> 6592 <td>String</td> 6593 <td>A password used to connect to the SVN server</td> 6594 <td>none</td> 6595 <td>No</td> 6596 </tr> 6597 <tr> 6598 <td>force</td> 6599 <td>Boolean</td> 6600 <td>Force overwrite files if they already exist</td> 6601 <td>False</td> 6602 <td>No</td> 6603 </tr> 6604 <tr> 6605 <td>nocache</td> 6606 <td>Boolean</td> 6607 <td>Connection credentials will not be cached</td> 6608 <td>False</td> 6609 <td>No</td> 6610 </tr> 6611 <tr> 6612 <td>todir</td> 6613 <td>String</td> 6614 <td>Path to export to</td> 6615 <td>none</td> 6616 <td>Yes</td> 6617 </tr> 6618 <tr> 6619 <td>recursive</td> 6620 <td>Boolean</td> 6621 <td>Recursive behavior</td> 6622 <td>True</td> 6623 <td>No</td> 6624 </tr> 6625 <tr> 6626 <td>ignoreexternals</td> 6627 <td>Boolean</td> 6628 <td>Ignore externals definitions</td> 6629 <td>False</td> 6630 <td>No</td> 6631 </tr> 6632 <tr> 6633 <td>trustServerCert</td> 6634 <td>Boolean</td> 6635 <td>Trust self-signed certificates</td> 6636 <td>False</td> 6637 <td>No</td> 6638 </tr> 6639 </tbody> 6640 </table> 6641 6642 <h2> 6643 <a name="SvnExportTask"></a>SvnExportTask 6644 </h2> 6645 <p> 6646 The <em>SvnExportTask</em> exports a Subversion repository to a local 6647 directory. 6648 </p> 6649 <h3>Examples</h3> 6650 <pre><svnexport 6195 <h3>Attributes</h3> 6196 <table> 6197 <thead> 6198 <tr> 6199 <th>Name</th> 6200 <th>Type</th> 6201 <th>Description</th> 6202 <th>Default</th> 6203 <th>Required</th> 6204 </tr> 6205 </thead> 6206 <tbody> 6207 <tr> 6208 <td>message</td> 6209 <td>String</td> 6210 <td>Log message</td> 6211 <td>n/a</td> 6212 <td>No</td> 6213 </tr> 6214 <tr> 6215 <td>svnpath</td> 6216 <td>String</td> 6217 <td>Path to Subversion binary</td> 6218 <td>/usr/bin/svn</td> 6219 <td>No</td> 6220 </tr> 6221 <tr> 6222 <td>repositoryurl</td> 6223 <td>String</td> 6224 <td>URL of SVN repository</td> 6225 <td>none</td> 6226 <td>Yes</td> 6227 </tr> 6228 <tr> 6229 <td>username</td> 6230 <td>String</td> 6231 <td>A username used to connect to the SVN server</td> 6232 <td>none</td> 6233 <td>No</td> 6234 </tr> 6235 <tr> 6236 <td>password</td> 6237 <td>String</td> 6238 <td>A password used to connect to the SVN server</td> 6239 <td>none</td> 6240 <td>No</td> 6241 </tr> 6242 <tr> 6243 <td>force</td> 6244 <td>Boolean</td> 6245 <td>Force overwrite files if they already exist</td> 6246 <td>False</td> 6247 <td>No</td> 6248 </tr> 6249 <tr> 6250 <td>nocache</td> 6251 <td>Boolean</td> 6252 <td>Connection credentials will not be cached</td> 6253 <td>False</td> 6254 <td>No</td> 6255 </tr> 6256 <tr> 6257 <td>todir</td> 6258 <td>String</td> 6259 <td>Path to export to</td> 6260 <td>none</td> 6261 <td>Yes</td> 6262 </tr> 6263 <tr> 6264 <td>recursive</td> 6265 <td>Boolean</td> 6266 <td>Recursive behavior</td> 6267 <td>True</td> 6268 <td>No</td> 6269 </tr> 6270 <tr> 6271 <td>ignoreexternals</td> 6272 <td>Boolean</td> 6273 <td>Ignore externals definitions</td> 6274 <td>False</td> 6275 <td>No</td> 6276 </tr> 6277 <tr> 6278 <td>trustServerCert</td> 6279 <td>Boolean</td> 6280 <td>Trust self-signed certificates</td> 6281 <td>False</td> 6282 <td>No</td> 6283 </tr> 6284 </tbody> 6285 </table> 6286 <h2> 6287 <a name="SvnExportTask"></a>SvnExportTask </h2> 6288 <p> The <em>SvnExportTask</em> exports a Subversion repository to a local directory. </p> 6289 <h3>Examples</h3> 6290 <pre><svnexport 6651 6291 svnpath="/usr/bin/svn" 6652 6292 username="anony" … … 6657 6297 todir="/home/user/svnwc"/> 6658 6298 </pre> 6659 <pre><svnexport6299 <pre><svnexport 6660 6300 svnpath="C:/Subversion/bin/svn.exe" 6661 6301 repositoryurl="svn://localhost/project/trunk/" 6662 6302 todir="C:/projects/svnwc"/> 6663 6303 </pre> 6664 <h3>Attributes</h3> 6665 <table> 6666 <thead> 6667 <tr> 6668 <th>Name</th> 6669 <th>Type</th> 6670 <th>Description</th> 6671 <th>Default</th> 6672 <th>Required</th> 6673 </tr> 6674 </thead> 6675 <tbody> 6676 <tr> 6677 <td>revision</td> 6678 <td>String</td> 6679 <td>Revision to use in export</td> 6680 <td>HEAD</td> 6681 <td>No</td> 6682 </tr> 6683 <tr> 6684 <td>svnpath</td> 6685 <td>String</td> 6686 <td>Path to Subversion binary</td> 6687 <td>/usr/bin/svn</td> 6688 <td>No</td> 6689 </tr> 6690 <tr> 6691 <td>repositoryurl</td> 6692 <td>String</td> 6693 <td>URL of SVN repository</td> 6694 <td>none</td> 6695 <td>Yes</td> 6696 </tr> 6697 <tr> 6698 <td>username</td> 6699 <td>String</td> 6700 <td>A username used to connect to the SVN server</td> 6701 <td>none</td> 6702 <td>No</td> 6703 </tr> 6704 <tr> 6705 <td>password</td> 6706 <td>String</td> 6707 <td>A password used to connect to the SVN server</td> 6708 <td>none</td> 6709 <td>No</td> 6710 </tr> 6711 <tr> 6712 <td>force</td> 6713 <td>Boolean</td> 6714 <td>Force overwrite files if they already exist</td> 6715 <td>False</td> 6716 <td>No</td> 6717 </tr> 6718 <tr> 6719 <td>nocache</td> 6720 <td>Boolean</td> 6721 <td>Connection credentials will not be cached</td> 6722 <td>False</td> 6723 <td>No</td> 6724 </tr> 6725 <tr> 6726 <td>todir</td> 6727 <td>String</td> 6728 <td>Path to export to</td> 6729 <td>none</td> 6730 <td>Yes</td> 6731 </tr> 6732 <tr> 6733 <td>recursive</td> 6734 <td>Boolean</td> 6735 <td>Recursive behavior</td> 6736 <td>True</td> 6737 <td>No</td> 6738 </tr> 6739 <tr> 6740 <td>ignoreexternals</td> 6741 <td>Boolean</td> 6742 <td>Ignore externals definitions</td> 6743 <td>False</td> 6744 <td>No</td> 6745 </tr> 6746 <tr> 6747 <td>trustServerCert</td> 6748 <td>Boolean</td> 6749 <td>Trust self-signed certificates</td> 6750 <td>False</td> 6751 <td>No</td> 6752 </tr> 6753 </tbody> 6754 </table> 6755 6756 <h2> 6757 <a name="SvnLastRevisionTask"></a>SvnLastRevisionTask 6758 </h2> 6759 <p> 6760 The <em>SvnLastRevisionTask</em> stores the number of the last 6761 revision of a Subversion workingcopy in a property. 6762 </p> 6763 <h3>Examples</h3> 6764 <pre><svnlastrevision 6304 <h3>Attributes</h3> 6305 <table> 6306 <thead> 6307 <tr> 6308 <th>Name</th> 6309 <th>Type</th> 6310 <th>Description</th> 6311 <th>Default</th> 6312 <th>Required</th> 6313 </tr> 6314 </thead> 6315 <tbody> 6316 <tr> 6317 <td>revision</td> 6318 <td>String</td> 6319 <td>Revision to use in export</td> 6320 <td>HEAD</td> 6321 <td>No</td> 6322 </tr> 6323 <tr> 6324 <td>svnpath</td> 6325 <td>String</td> 6326 <td>Path to Subversion binary</td> 6327 <td>/usr/bin/svn</td> 6328 <td>No</td> 6329 </tr> 6330 <tr> 6331 <td>repositoryurl</td> 6332 <td>String</td> 6333 <td>URL of SVN repository</td> 6334 <td>none</td> 6335 <td>Yes</td> 6336 </tr> 6337 <tr> 6338 <td>username</td> 6339 <td>String</td> 6340 <td>A username used to connect to the SVN server</td> 6341 <td>none</td> 6342 <td>No</td> 6343 </tr> 6344 <tr> 6345 <td>password</td> 6346 <td>String</td> 6347 <td>A password used to connect to the SVN server</td> 6348 <td>none</td> 6349 <td>No</td> 6350 </tr> 6351 <tr> 6352 <td>force</td> 6353 <td>Boolean</td> 6354 <td>Force overwrite files if they already exist</td> 6355 <td>False</td> 6356 <td>No</td> 6357 </tr> 6358 <tr> 6359 <td>nocache</td> 6360 <td>Boolean</td> 6361 <td>Connection credentials will not be cached</td> 6362 <td>False</td> 6363 <td>No</td> 6364 </tr> 6365 <tr> 6366 <td>todir</td> 6367 <td>String</td> 6368 <td>Path to export to</td> 6369 <td>none</td> 6370 <td>Yes</td> 6371 </tr> 6372 <tr> 6373 <td>recursive</td> 6374 <td>Boolean</td> 6375 <td>Recursive behavior</td> 6376 <td>True</td> 6377 <td>No</td> 6378 </tr> 6379 <tr> 6380 <td>ignoreexternals</td> 6381 <td>Boolean</td> 6382 <td>Ignore externals definitions</td> 6383 <td>False</td> 6384 <td>No</td> 6385 </tr> 6386 <tr> 6387 <td>trustServerCert</td> 6388 <td>Boolean</td> 6389 <td>Trust self-signed certificates</td> 6390 <td>False</td> 6391 <td>No</td> 6392 </tr> 6393 </tbody> 6394 </table> 6395 <h2> 6396 <a name="SvnLastRevisionTask"></a>SvnLastRevisionTask </h2> 6397 <p> The <em>SvnLastRevisionTask</em> stores the number of the last revision of a Subversion 6398 workingcopy in a property. </p> 6399 <h3>Examples</h3> 6400 <pre><svnlastrevision 6765 6401 svnpath="/usr/bin/svn" 6766 6402 workingcopy="/home/user/svnwc" 6767 6403 propertyname="svn.lastrevision"/> 6768 6404 </pre> 6769 <pre><svnlastrevision6405 <pre><svnlastrevision 6770 6406 svnpath="C:/Subversion/bin/svn.exe" 6771 6407 workingcopy="C:/projects/svnwc" 6772 6408 propertyname="svn.lastrevision"/> 6773 6409 </pre> 6774 <pre><svnlastrevision6410 <pre><svnlastrevision 6775 6411 svnpath="C:/Subversion/bin/svn.exe" 6776 6412 repositoryurl="http://svn.phing.info/" 6777 6413 propertyname="svn.lastrevision"/> 6778 6414 </pre> 6779 <h3>Attributes</h3> 6780 <table> 6781 <thead> 6782 <tr> 6783 <th>Name</th> 6784 <th>Type</th> 6785 <th>Description</th> 6786 <th>Default</th> 6787 <th>Required</th> 6788 </tr> 6789 </thead> 6790 <tbody> 6791 <tr> 6792 <td>svnpath</td> 6793 <td>String</td> 6794 <td>Path to Subversion binary</td> 6795 <td>/usr/bin/svn</td> 6796 <td>No</td> 6797 </tr> 6798 <tr> 6799 <td>workingcopy</td> 6800 <td>String</td> 6801 <td>Working copy directory</td> 6802 <td>none</td> 6803 <td>Yes, or <em>repositoryurl</em></td> 6804 </tr> 6805 <tr> 6806 <td>repositoryurl</td> 6807 <td>String</td> 6808 <td>URL of remote repository</td> 6809 <td>none</td> 6810 <td>Yes, or <em>workingcopy</em></td> 6811 </tr> 6812 <tr> 6813 <td>propertyname</td> 6814 <td>String</td> 6815 <td>Name of property to use</td> 6816 <td>svn.lastrevision</td> 6817 <td>No</td> 6818 </tr> 6819 <tr> 6820 <td>lastChanged</td> 6821 <td>Boolean</td> 6822 <td>Sets whether to store actual last changed revision of the 6823 directory/file mentioned</td> 6824 <td>false</td> 6825 <td>No</td> 6826 </tr> 6827 <tr> 6828 <td>forceCompatible</td> 6829 <td>Boolean</td> 6830 <td>Sets whether to force compatibility with older SVN versions 6831 (< 1.2)</td> 6832 <td>false</td> 6833 <td>No</td> 6834 </tr> 6835 </tbody> 6836 </table> 6837 6838 <h2> 6839 <a name="SvnListTask"></a> SvnListTask 6840 </h2> 6841 <p> 6842 The <em>SvnListTask</em> stores the output of a svn list command on a 6843 workingcopy or repositoryurl in a property. 6844 </p> 6845 <p> 6846 Currently it always uses the <em>forceCompatiple</em> mode so the 6847 supplied attribute is ignored. It uses svn's --verbose switch to get 6848 additional data about the listed items. The result will be stored in 6849 an array, one string that is seperated by ' | ' (in words: space pipe 6850 space) for easy parsing. 6851 </p> 6852 <h3>Examples</h3> 6853 <pre><svnlist svnpath="/usr/bin/svn" workingcopy="/home/user/svnwc" propertyname="svn.list"/> </pre> 6854 <pre><svnlist svnpath="/usr/bin/svn" repositoryurl="http://svn.example.com/myrepo/tags" orderDescending="true" limit="10" /> </pre> 6855 <p>The latter example could produce a list of your tags like this:</p> 6856 <pre> 6415 <h3>Attributes</h3> 6416 <table> 6417 <thead> 6418 <tr> 6419 <th>Name</th> 6420 <th>Type</th> 6421 <th>Description</th> 6422 <th>Default</th> 6423 <th>Required</th> 6424 </tr> 6425 </thead> 6426 <tbody> 6427 <tr> 6428 <td>svnpath</td> 6429 <td>String</td> 6430 <td>Path to Subversion binary</td> 6431 <td>/usr/bin/svn</td> 6432 <td>No</td> 6433 </tr> 6434 <tr> 6435 <td>workingcopy</td> 6436 <td>String</td> 6437 <td>Working copy directory</td> 6438 <td>none</td> 6439 <td>Yes, or <em>repositoryurl</em></td> 6440 </tr> 6441 <tr> 6442 <td>repositoryurl</td> 6443 <td>String</td> 6444 <td>URL of remote repository</td> 6445 <td>none</td> 6446 <td>Yes, or <em>workingcopy</em></td> 6447 </tr> 6448 <tr> 6449 <td>propertyname</td> 6450 <td>String</td> 6451 <td>Name of property to use</td> 6452 <td>svn.lastrevision</td> 6453 <td>No</td> 6454 </tr> 6455 <tr> 6456 <td>lastChanged</td> 6457 <td>Boolean</td> 6458 <td>Sets whether to store actual last changed revision of the directory/file 6459 mentioned</td> 6460 <td>false</td> 6461 <td>No</td> 6462 </tr> 6463 <tr> 6464 <td>forceCompatible</td> 6465 <td>Boolean</td> 6466 <td>Sets whether to force compatibility with older SVN versions (< 1.2)</td> 6467 <td>false</td> 6468 <td>No</td> 6469 </tr> 6470 </tbody> 6471 </table> 6472 <h2> 6473 <a name="SvnListTask"></a> SvnListTask </h2> 6474 <p> The <em>SvnListTask</em> stores the output of a svn list command on a workingcopy or 6475 repositoryurl in a property. </p> 6476 <p> Currently it always uses the <em>forceCompatiple</em> mode so the supplied attribute is 6477 ignored. It uses svn's --verbose switch to get additional data about the listed items. 6478 The result will be stored in an array, one string that is seperated by ' | ' (in words: 6479 space pipe space) for easy parsing. </p> 6480 <h3>Examples</h3> 6481 <pre><svnlist svnpath="/usr/bin/svn" workingcopy="/home/user/svnwc" propertyname="svn.list"/> </pre> 6482 <pre><svnlist svnpath="/usr/bin/svn" repositoryurl="http://svn.example.com/myrepo/tags" orderDescending="true" limit="10" /> </pre> 6483 <p>The latter example could produce a list of your tags like this:</p> 6484 <pre> 6857 6485 revision | author | date | item 6858 6486 4028 | tony | May 19 18:31 | Release_2.9.1.7 … … 6863 6491 ... 6864 6492 </pre> 6865 <h3>Attributes</h3> 6866 <table> 6867 <thead> 6868 <tr> 6869 <th>Name</th> 6870 <th>Type</th> 6871 <th>Description</th> 6872 <th>Default</th> 6873 <th>Required</th> 6874 </tr> 6875 </thead> 6876 <tbody> 6877 <tr> 6878 <td>svnpath</td> 6879 <td>String</td> 6880 <td>Path to Subversion binary</td> 6881 <td>/usr/bin/svn</td> 6882 <td>No</td> 6883 </tr> 6884 <tr> 6885 <td>workingcopy</td> 6886 <td>String</td> 6887 <td>Working copy directory</td> 6888 <td>none</td> 6889 <td rowspan="2">One of the two</td> 6890 </tr> 6891 <tr> 6892 <td>repositoryurl</td> 6893 <td>String</td> 6894 <td>URL of remote repository</td> 6895 <td>none</td> 6896 </tr> 6897 <tr> 6898 <td>propertyname</td> 6899 <td>String</td> 6900 <td>Name of property to use</td> 6901 <td>svn.list</td> 6902 <td>No</td> 6903 </tr> 6904 <tr> 6905 <td>forceCompatible</td> 6906 <td>Boolean</td> 6907 <td>Sets whether to force compatibility with older SVN versions 6908 (< 1.2)</td> 6909 <td>true</td> 6910 <td>No</td> 6911 </tr> 6912 <tr> 6913 <td>limit</td> 6914 <td>Integer</td> 6915 <td>Limits the number of items to get back from the command</td> 6916 <td>n/a</td> 6917 <td>No</td> 6918 </tr> 6919 <tr> 6920 <td>orderDescending</td> 6921 <td>Boolean</td> 6922 <td>Sets whether to reverse the order of the listed items</td> 6923 <td>false</td> 6924 <td>No</td> 6925 </tr> 6926 </tbody> 6927 </table> 6928 6929 <h2> 6930 <a name="SvnLogTask"></a> SvnLogTask 6931 </h2> 6932 <p> 6933 The <em>SvnLogTask</em> stores the output of a svn log command on a 6934 workingcopy or repositoryurl in a property. 6935 </p> 6936 <p> 6937 Currently it always uses the <em>forceCompatiple</em> mode so the 6938 supplied attribute is ignored. The result will be stored in an array, 6939 one string that is seperated by ' | ' (in words: space pipe space) for 6940 easy parsing. 6941 </p> 6942 <h3>Examples</h3> 6943 <pre><svnlog svnpath="/usr/bin/svn" workingcopy="/home/user/svnwc" propertyname="svn.log"/> </pre> 6944 <pre><svnlog svnpath="/usr/bin/svn" repositoryurl="http://svn.example.com/myrepo/trunk" limit="10" /> </pre> 6945 <p>The latter example could produce a history of the latest 6946 revisions in the trunk:</p> 6947 <pre> 6493 <h3>Attributes</h3> 6494 <table> 6495 <thead> 6496 <tr> 6497 <th>Name</th> 6498 <th>Type</th> 6499 <th>Description</th> 6500 <th>Default</th> 6501 <th>Required</th> 6502 </tr> 6503 </thead> 6504 <tbody> 6505 <tr> 6506 <td>svnpath</td> 6507 <td>String</td> 6508 <td>Path to Subversion binary</td> 6509 <td>/usr/bin/svn</td> 6510 <td>No</td> 6511 </tr> 6512 <tr> 6513 <td>workingcopy</td> 6514 <td>String</td> 6515 <td>Working copy directory</td> 6516 <td>none</td> 6517 <td rowspan="2">One of the two</td> 6518 </tr> 6519 <tr> 6520 <td>repositoryurl</td> 6521 <td>String</td> 6522 <td>URL of remote repository</td> 6523 <td>none</td> 6524 </tr> 6525 <tr> 6526 <td>propertyname</td> 6527 <td>String</td> 6528 <td>Name of property to use</td> 6529 <td>svn.list</td> 6530 <td>No</td> 6531 </tr> 6532 <tr> 6533 <td>forceCompatible</td> 6534 <td>Boolean</td> 6535 <td>Sets whether to force compatibility with older SVN versions (< 1.2)</td> 6536 <td>true</td> 6537 <td>No</td> 6538 </tr> 6539 <tr> 6540 <td>limit</td> 6541 <td>Integer</td> 6542 <td>Limits the number of items to get back from the command</td> 6543 <td>n/a</td> 6544 <td>No</td> 6545 </tr> 6546 <tr> 6547 <td>orderDescending</td> 6548 <td>Boolean</td> 6549 <td>Sets whether to reverse the order of the listed items</td> 6550 <td>false</td> 6551 <td>No</td> 6552 </tr> 6553 </tbody> 6554 </table> 6555 <h2> 6556 <a name="SvnLogTask"></a> SvnLogTask </h2> 6557 <p> The <em>SvnLogTask</em> stores the output of a svn log command on a workingcopy or 6558 repositoryurl in a property. </p> 6559 <p> Currently it always uses the <em>forceCompatiple</em> mode so the supplied attribute is 6560 ignored. The result will be stored in an array, one string that is seperated by ' | ' 6561 (in words: space pipe space) for easy parsing. </p> 6562 <h3>Examples</h3> 6563 <pre><svnlog svnpath="/usr/bin/svn" workingcopy="/home/user/svnwc" propertyname="svn.log"/> </pre> 6564 <pre><svnlog svnpath="/usr/bin/svn" repositoryurl="http://svn.example.com/myrepo/trunk" limit="10" /> </pre> 6565 <p>The latter example could produce a history of the latest revisions in the trunk:</p> 6566 <pre> 6948 6567 4033 | tony | 2011-05-23T14:21:12.496274Z | some svn commit comment 6949 6568 4032 | tony | 2011-05-23T13:24:46.496265Z | some svn commit comment … … 6951 6570 ... 6952 6571 </pre> 6953 <h3>Attributes</h3> 6954 <table> 6955 <thead> 6956 <tr> 6957 <th>Name</th> 6958 <th>Type</th> 6959 <th>Description</th> 6960 <th>Default</th> 6961 <th>Required</th> 6962 </tr> 6963 </thead> 6964 <tbody> 6965 <tr> 6966 <td>svnpath</td> 6967 <td>String</td> 6968 <td>Path to Subversion binary</td> 6969 <td>/usr/bin/svn</td> 6970 <td>No</td> 6971 </tr> 6972 <tr> 6973 <td>workingcopy</td> 6974 <td>String</td> 6975 <td>Working copy directory</td> 6976 <td>none</td> 6977 <td rowspan="2">One of the two</td> 6978 </tr> 6979 <tr> 6980 <td>repositoryurl</td> 6981 <td>String</td> 6982 <td>URL of remote repository</td> 6983 <td>none</td> 6984 </tr> 6985 <tr> 6986 <td>propertyname</td> 6987 <td>String</td> 6988 <td>Name of property to use</td> 6989 <td>svn.list</td> 6990 <td>No</td> 6991 </tr> 6992 <tr> 6993 <td>forceCompatible</td> 6994 <td>Boolean</td> 6995 <td>Sets whether to force compatibility with older SVN versions 6996 (< 1.2)</td> 6997 <td>true</td> 6998 <td>No</td> 6999 </tr> 7000 <tr> 7001 <td>limit</td> 7002 <td>Integer</td> 7003 <td>Limits the number of items to get back from the command</td> 7004 <td>n/a</td> 7005 <td>No</td> 7006 </tr> 7007 </tbody> 7008 </table> 7009 7010 7011 <h2> 7012 <a name="SvnUpdateTask"></a>SvnUpdateTask 7013 </h2> 7014 <p> 7015 The <em>SvnUpdateTask</em> updates a local directory. 7016 </p> 7017 <h3>Examples</h3> 7018 <pre><svnupdate 6572 <h3>Attributes</h3> 6573 <table> 6574 <thead> 6575 <tr> 6576 <th>Name</th> 6577 <th>Type</th> 6578 <th>Description</th> 6579 <th>Default</th> 6580 <th>Required</th> 6581 </tr> 6582 </thead> 6583 <tbody> 6584 <tr> 6585 <td>svnpath</td> 6586 <td>String</td> 6587 <td>Path to Subversion binary</td> 6588 <td>/usr/bin/svn</td> 6589 <td>No</td> 6590 </tr> 6591 <tr> 6592 <td>workingcopy</td> 6593 <td>String</td> 6594 <td>Working copy directory</td> 6595 <td>none</td> 6596 <td rowspan="2">One of the two</td> 6597 </tr> 6598 <tr> 6599 <td>repositoryurl</td> 6600 <td>String</td> 6601 <td>URL of remote repository</td> 6602 <td>none</td> 6603 </tr> 6604 <tr> 6605 <td>propertyname</td> 6606 <td>String</td> 6607 <td>Name of property to use</td> 6608 <td>svn.list</td> 6609 <td>No</td> 6610 </tr> 6611 <tr> 6612 <td>forceCompatible</td> 6613 <td>Boolean</td> 6614 <td>Sets whether to force compatibility with older SVN versions (< 1.2)</td> 6615 <td>true</td> 6616 <td>No</td> 6617 </tr> 6618 <tr> 6619 <td>limit</td> 6620 <td>Integer</td> 6621 <td>Limits the number of items to get back from the command</td> 6622 <td>n/a</td> 6623 <td>No</td> 6624 </tr> 6625 </tbody> 6626 </table> 6627 <h2> 6628 <a name="SvnUpdateTask"></a>SvnUpdateTask </h2> 6629 <p> The <em>SvnUpdateTask</em> updates a local directory. </p> 6630 <h3>Examples</h3> 6631 <pre><svnupdate 7019 6632 svnpath="/usr/bin/svn" 7020 6633 username="anony" … … 7023 6636 todir="/home/user/svnwc"/> 7024 6637 </pre> 7025 <pre><svnupdate6638 <pre><svnupdate 7026 6639 svnpath="C:/Subversion/bin/svn.exe" 7027 6640 todir="C:/projects/svnwc"/> 7028 6641 </pre> 7029 <h3>Attributes</h3> 7030 <table> 7031 <thead> 7032 <tr> 7033 <th>Name</th> 7034 <th>Type</th> 7035 <th>Description</th> 7036 <th>Default</th> 7037 <th>Required</th> 7038 </tr> 7039 </thead> 7040 <tbody> 7041 <tr> 7042 <td>svnpath</td> 7043 <td>String</td> 7044 <td>Path to Subversion binary</td> 7045 <td>/usr/bin/svn</td> 7046 <td>No</td> 7047 </tr> 7048 <tr> 7049 <td>username</td> 7050 <td>String</td> 7051 <td>A username used to connect to the SVN server</td> 7052 <td>none</td> 7053 <td>No</td> 7054 </tr> 7055 <tr> 7056 <td>password</td> 7057 <td>String</td> 7058 <td>A password used to connect to the SVN server</td> 7059 <td>none</td> 7060 <td>No</td> 7061 </tr> 7062 <tr> 7063 <td>nocache</td> 7064 <td>Boolean</td> 7065 <td>Connection credentials will not be cached</td> 7066 <td>False</td> 7067 <td>No</td> 7068 </tr> 7069 <tr> 7070 <td>todir</td> 7071 <td>String</td> 7072 <td>Path to the working copy</td> 7073 <td>none</td> 7074 <td>Yes</td> 7075 </tr> 7076 <tr> 7077 <td>revision</td> 7078 <td>Integer</td> 7079 <td>Specific revision to update the working copy to</td> 7080 <td>none</td> 7081 <td>No</td> 7082 </tr> 7083 <tr> 7084 <td>ignoreexternals</td> 7085 <td>Boolean</td> 7086 <td>Ignore externals definitions</td> 7087 <td>False</td> 7088 <td>No</td> 7089 </tr> 7090 <tr> 7091 <td>trustServerCert</td> 7092 <td>Boolean</td> 7093 <td>Trust self-signed certificates</td> 7094 <td>False</td> 7095 <td>No</td> 7096 </tr> 7097 </tbody> 7098 </table> 7099 <h2> 7100 <a name="SvnSwitchTask"></a>SvnSwitchTask 7101 </h2> 7102 <p> 7103 The <em>SvnSwitchTask</em> changes a local directory from one 7104 repository to another. 7105 </p> 7106 <h3>Examples</h3> 7107 <pre><svnswitch 6642 <h3>Attributes</h3> 6643 <table> 6644 <thead> 6645 <tr> 6646 <th>Name</th> 6647 <th>Type</th> 6648 <th>Description</th> 6649 <th>Default</th> 6650 <th>Required</th> 6651 </tr> 6652 </thead> 6653 <tbody> 6654 <tr> 6655 <td>svnpath</td> 6656 <td>String</td> 6657 <td>Path to Subversion binary</td> 6658 <td>/usr/bin/svn</td> 6659 <td>No</td> 6660 </tr> 6661 <tr> 6662 <td>username</td> 6663 <td>String</td> 6664 <td>A username used to connect to the SVN server</td> 6665 <td>none</td> 6666 <td>No</td> 6667 </tr> 6668 <tr> 6669 <td>password</td> 6670 <td>String</td> 6671 <td>A password used to connect to the SVN server</td> 6672 <td>none</td> 6673 <td>No</td> 6674 </tr> 6675 <tr> 6676 <td>nocache</td> 6677 <td>Boolean</td> 6678 <td>Connection credentials will not be cached</td> 6679 <td>False</td> 6680 <td>No</td> 6681 </tr> 6682 <tr> 6683 <td>todir</td> 6684 <td>String</td> 6685 <td>Path to the working copy</td> 6686 <td>none</td> 6687 <td>Yes</td> 6688 </tr> 6689 <tr> 6690 <td>revision</td> 6691 <td>Integer</td> 6692 <td>Specific revision to update the working copy to</td> 6693 <td>none</td> 6694 <td>No</td> 6695 </tr> 6696 <tr> 6697 <td>ignoreexternals</td> 6698 <td>Boolean</td> 6699 <td>Ignore externals definitions</td> 6700 <td>False</td> 6701 <td>No</td> 6702 </tr> 6703 <tr> 6704 <td>trustServerCert</td> 6705 <td>Boolean</td> 6706 <td>Trust self-signed certificates</td> 6707 <td>False</td> 6708 <td>No</td> 6709 </tr> 6710 </tbody> 6711 </table> 6712 <h2> 6713 <a name="SvnSwitchTask"></a>SvnSwitchTask </h2> 6714 <p> The <em>SvnSwitchTask</em> changes a local directory from one repository to another. </p> 6715 <h3>Examples</h3> 6716 <pre><svnswitch 7108 6717 svnpath="/usr/bin/svn" 7109 6718 username="anony" … … 7113 6722 todir="/home/user/svnwc"/> 7114 6723 </pre> 7115 <pre><svnswitch6724 <pre><svnswitch 7116 6725 svnpath="C:/Subversion/bin/svn.exe" 7117 6726 repositoryurl="http://svn.phing.info/tags/2.4.2" 7118 6727 todir="C:/projects/svnwc"/> 7119 6728 </pre> 7120 <h3>Attributes</h3> 7121 <table> 7122 <thead> 7123 <tr> 7124 <th>Name</th> 7125 <th>Type</th> 7126 <th>Description</th> 7127 <th>Default</th> 7128 <th>Required</th> 7129 </tr> 7130 </thead> 7131 <tbody> 7132 <tr> 7133 <td>svnpath</td> 7134 <td>String</td> 7135 <td>Path to Subversion binary</td> 7136 <td>/usr/bin/svn</td> 7137 <td>No</td> 7138 </tr> 7139 <tr> 7140 <td>repositoryurl</td> 7141 <td>String</td> 7142 <td>URL of remote repository</td> 7143 <td>none</td> 7144 <td>Yes</td> 7145 </tr> 7146 <tr> 7147 <td>todir</td> 7148 <td>String</td> 7149 <td>Path to the checked out project</td> 7150 <td>none</td> 7151 <td>Yes</td> 7152 </tr> 7153 <tr> 7154 <td>username</td> 7155 <td>String</td> 7156 <td>A username used to connect to the SVN server</td> 7157 <td>none</td> 7158 <td>No</td> 7159 </tr> 7160 <tr> 7161 <td>password</td> 7162 <td>String</td> 7163 <td>A password used to connect to the SVN server</td> 7164 <td>none</td> 7165 <td>No</td> 7166 </tr> 7167 <tr> 7168 <td>nocache</td> 7169 <td>Boolean</td> 7170 <td>Connection credentials will not be cached</td> 7171 <td>False</td> 7172 <td>No</td> 7173 </tr> 7174 <tr> 7175 <td>recursive</td> 7176 <td>Boolean</td> 7177 <td>Recursive behavior</td> 7178 <td>True</td> 7179 <td>No</td> 7180 </tr> 7181 <tr> 7182 <td>ignoreexternals</td> 7183 <td>Boolean</td> 7184 <td>Ignore externals definitions</td> 7185 <td>False</td> 7186 <td>No</td> 7187 </tr> 7188 <tr> 7189 <td>trustServerCert</td> 7190 <td>Boolean</td> 7191 <td>Trust self-signed certificates</td> 7192 <td>False</td> 7193 <td>No</td> 7194 </tr> 7195 </tbody> 7196 </table> 7197 7198 <h2> 7199 <a name="SymlinkTask"></a>SymlinkTask 7200 </h2> 7201 <p>Creates symlink(s) to a specified file / directory or a 7202 collection of files / directories.</p> 7203 <h3>Examples</h3> 7204 <p>Single symlink</p> 7205 <pre><symlink target="/path/to/original/file" link="/where/to/symlink" /></pre> 7206 <p>Using filesets</p> 7207 <pre> 6729 <h3>Attributes</h3> 6730 <table> 6731 <thead> 6732 <tr> 6733 <th>Name</th> 6734 <th>Type</th> 6735 <th>Description</th> 6736 <th>Default</th> 6737 <th>Required</th> 6738 </tr> 6739 </thead> 6740 <tbody> 6741 <tr> 6742 <td>svnpath</td> 6743 <td>String</td> 6744 <td>Path to Subversion binary</td> 6745 <td>/usr/bin/svn</td> 6746 <td>No</td> 6747 </tr> 6748 <tr> 6749 <td>repositoryurl</td> 6750 <td>String</td> 6751 <td>URL of remote repository</td> 6752 <td>none</td> 6753 <td>Yes</td> 6754 </tr> 6755 <tr> 6756 <td>todir</td> 6757 <td>String</td> 6758 <td>Path to the checked out project</td> 6759 <td>none</td> 6760 <td>Yes</td> 6761 </tr> 6762 <tr> 6763 <td>username</td> 6764 <td>String</td> 6765 <td>A username used to connect to the SVN server</td> 6766 <td>none</td> 6767 <td>No</td> 6768 </tr> 6769 <tr> 6770 <td>password</td> 6771 <td>String</td> 6772 <td>A password used to connect to the SVN server</td> 6773 <td>none</td> 6774 <td>No</td> 6775 </tr> 6776 <tr> 6777 <td>nocache</td> 6778 <td>Boolean</td> 6779 <td>Connection credentials will not be cached</td> 6780 <td>False</td> 6781 <td>No</td> 6782 </tr> 6783 <tr> 6784 <td>recursive</td> 6785 <td>Boolean</td> 6786 <td>Recursive behavior</td> 6787 <td>True</td> 6788 <td>No</td> 6789 </tr> 6790 <tr> 6791 <td>ignoreexternals</td> 6792 <td>Boolean</td> 6793 <td>Ignore externals definitions</td> 6794 <td>False</td> 6795 <td>No</td> 6796 </tr> 6797 <tr> 6798 <td>trustServerCert</td> 6799 <td>Boolean</td> 6800 <td>Trust self-signed certificates</td> 6801 <td>False</td> 6802 <td>No</td> 6803 </tr> 6804 </tbody> 6805 </table> 6806 <h2> 6807 <a name="SymlinkTask"></a>SymlinkTask </h2> 6808 <p>Creates symlink(s) to a specified file / directory or a collection of files / 6809 directories.</p> 6810 <h3>Examples</h3> 6811 <p>Single symlink</p> 6812 <pre><symlink target="/path/to/original/file" link="/where/to/symlink" /></pre> 6813 <p>Using filesets</p> 6814 <pre> 7208 6815 <symlink link="/where/to/symlink"> 7209 6816 <fileset dir="/some/directory"> … … 7212 6819 </symlink> 7213 6820 </pre> 7214 <p>In the fileset example, assuming the contents of 7215 "/some/directory" were:</p> 7216 <ul> 7217 <li>Somedir</li> 7218 <li>somefile</li> 7219 </ul> 7220 <p>Then the contents of "/where/to/symlink" would be:</p> 7221 <ul> 7222 <li>Somedir -> /some/directory/Somedir</li> 7223 <li>somefile -> /some/directory/somefile</li> 7224 </ul> 7225 <h3>Attributes</h3> 7226 <table> 7227 <thead> 7228 <tr> 7229 <th>Name</th> 7230 <th>Type</th> 7231 <th>Description</th> 7232 <th>Default</th> 7233 <th>Required</th> 7234 </tr> 7235 </thead> 7236 <tbody> 7237 <tr> 7238 <td>target</td> 7239 <td>String</td> 7240 <td>What you're trying to symlink from</td> 7241 <td>n/a</td> 7242 <td>Yes (or nested FileSet)</td> 7243 </tr> 7244 <tr> 7245 <td>link</td> 7246 <td>String</td> 7247 <td>Where you'd like the symlink(s)</td> 7248 <td>n/a</td> 7249 <td>Yes</td> 7250 </tr> 7251 <tr> 7252 <td>overwrite</td> 7253 <td>Boolean</td> 7254 <td>Whether to override the symlink if it exists but points 7255 to a different location</td> 7256 <td>false</td> 7257 <td>No</td> 7258 </tr> 7259 </tbody> 7260 </table> 7261 7262 <h3>Supported Nested Tags</h3> 7263 <ul> 7264 <li>fileset</li> 7265 </ul> 7266 7267 <h2> 7268 <a name="TarTask"></a>TarTask 7269 </h2> 7270 <p> 7271 The <em>TarTask</em> creates a tarball from a fileset or directory. 7272 </p> 7273 <h3>Examples</h3> 7274 <pre><tar destfile="phing.tar" compression="gzip"> 6821 <p>In the fileset example, assuming the contents of "/some/directory" were:</p> 6822 <ul> 6823 <li>Somedir</li> 6824 <li>somefile</li> 6825 </ul> 6826 <p>Then the contents of "/where/to/symlink" would be:</p> 6827 <ul> 6828 <li>Somedir -> /some/directory/Somedir</li> 6829 <li>somefile -> /some/directory/somefile</li> 6830 </ul> 6831 <h3>Attributes</h3> 6832 <table> 6833 <thead> 6834 <tr> 6835 <th>Name</th> 6836 <th>Type</th> 6837 <th>Description</th> 6838 <th>Default</th> 6839 <th>Required</th> 6840 </tr> 6841 </thead> 6842 <tbody> 6843 <tr> 6844 <td>target</td> 6845 <td>String</td> 6846 <td>What you're trying to symlink from</td> 6847 <td>n/a</td> 6848 <td>Yes (or nested FileSet)</td> 6849 </tr> 6850 <tr> 6851 <td>link</td> 6852 <td>String</td> 6853 <td>Where you'd like the symlink(s)</td> 6854 <td>n/a</td> 6855 <td>Yes</td> 6856 </tr> 6857 <tr> 6858 <td>overwrite</td> 6859 <td>Boolean</td> 6860 <td>Whether to override the symlink if it exists but points to a different 6861 location</td> 6862 <td>false</td> 6863 <td>No</td> 6864 </tr> 6865 </tbody> 6866 </table> 6867 <h3>Supported Nested Tags</h3> 6868 <ul> 6869 <li>fileset</li> 6870 </ul> 6871 <h2> 6872 <a name="TarTask"></a>TarTask </h2> 6873 <p> The <em>TarTask</em> creates a tarball from a fileset or directory. </p> 6874 <h3>Examples</h3> 6875 <pre><tar destfile="phing.tar" compression="gzip"> 7275 6876 <fileset dir="."> 7276 6877 <include name="**/**" /> … … 7278 6879 </tar> 7279 6880 </pre> 7280 <p>The above example uses a fileset to determine which files to 7281 include in the archive.</p> 7282 <pre><tar destfile="phing.tar" basedir="." compression="gzip"/></pre> 7283 <p>The second example uses the basedir attribute to include the 7284 contents of that directory (including subdirectories) in the archive.</p> 7285 <h3>Attributes</h3> 7286 <table> 7287 <thead> 7288 <tr> 7289 <th>Name</th> 7290 <th>Type</th> 7291 <th>Description</th> 7292 <th>Default</th> 7293 <th>Required</th> 7294 </tr> 7295 </thead> 7296 <tbody> 7297 <tr> 7298 <td>destfile</td> 7299 <td>String</td> 7300 <td>Tarball filename</td> 7301 <td>none</td> 7302 <td>Yes</td> 7303 </tr> 7304 <tr> 7305 <td>basedir</td> 7306 <td>String</td> 7307 <td>Base directory to tar (if no fileset specified, entire 7308 directory contents will be included in tar)</td> 7309 <td>none</td> 7310 <td>No</td> 7311 </tr> 7312 <tr> 7313 <td>compression</td> 7314 <td>String</td> 7315 <td>Type of compression to use (gzip, bzip2, none)</td> 7316 <td>none</td> 7317 <td>No</td> 7318 </tr> 7319 <tr> 7320 <td>includeemptydirs</td> 7321 <td>Boolean</td> 7322 <td>If set to <em>true</em>, also empty directories are copied. 7323 </td> 7324 <td>true</td> 7325 <td>No</td> 7326 </tr> 7327 <tr> 7328 <td>longfile</td> 7329 <td>String</td> 7330 <td>How to handle long files, those with a path > 100 chars. 7331 Allowable values are: 7332 <ul> 7333 <li>truncate - paths are truncated to the maximum length</li> 7334 <li>fail - paths greater than the maximim cause a build 7335 exception</li> 7336 <li>warn - paths greater than the maximum cause a warning and 7337 GNU is used</li> 7338 <li>gnu - GNU extensions are used for any paths greater than 7339 the maximum</li> 7340 <li>omit - paths greater than the maximum are omitted from 7341 the archive</li> 7342 </ul></td> 7343 <td>warn</td> 7344 <td>No</td> 7345 </tr> 7346 <tr> 7347 <td>prefix</td> 7348 <td>String</td> 7349 <td>File path prefix to use when adding files to archive</td> 7350 <td>none</td> 7351 <td>No</td> 7352 </tr> 7353 </tbody> 7354 </table> 7355 <p> 7356 <b>Important note #1:</b> files are not replaced if they are already 7357 present in the archive. 7358 </p> 7359 <p> 7360 <b>Important note #2:</b> using basedir and fileset simultaneously can 7361 result in strange contents in the archive. 7362 </p> 7363 <h3>Supported Nested Tags</h3> 7364 <ul> 7365 <li>fileset</li> 7366 </ul> 7367 <h2> 7368 <a name="UntarTask"></a> UntarTask 7369 </h2> 7370 <p> 7371 The <em>UntarTask</em> unpacks one or more tar archives. 7372 </p> 7373 <h3>Examples</h3> 7374 <pre><untar file="testtar.tar.gz" todir="dest"> 6881 <p>The above example uses a fileset to determine which files to include in the archive.</p> 6882 <pre><tar destfile="phing.tar" basedir="." compression="gzip"/></pre> 6883 <p>The second example uses the basedir attribute to include the contents of that directory 6884 (including subdirectories) in the archive.</p> 6885 <h3>Attributes</h3> 6886 <table> 6887 <thead> 6888 <tr> 6889 <th>Name</th> 6890 <th>Type</th> 6891 <th>Description</th> 6892 <th>Default</th> 6893 <th>Required</th> 6894 </tr> 6895 </thead> 6896 <tbody> 6897 <tr> 6898 <td>destfile</td> 6899 <td>String</td> 6900 <td>Tarball filename</td> 6901 <td>none</td> 6902 <td>Yes</td> 6903 </tr> 6904 <tr> 6905 <td>basedir</td> 6906 <td>String</td> 6907 <td>Base directory to tar (if no fileset specified, entire directory contents 6908 will be included in tar)</td> 6909 <td>none</td> 6910 <td>No</td> 6911 </tr> 6912 <tr> 6913 <td>compression</td> 6914 <td>String</td> 6915 <td>Type of compression to use (gzip, bzip2, none)</td> 6916 <td>none</td> 6917 <td>No</td> 6918 </tr> 6919 <tr> 6920 <td>includeemptydirs</td> 6921 <td>Boolean</td> 6922 <td>If set to <em>true</em>, also empty directories are copied. </td> 6923 <td>true</td> 6924 <td>No</td> 6925 </tr> 6926 <tr> 6927 <td>longfile</td> 6928 <td>String</td> 6929 <td>How to handle long files, those with a path > 100 chars. Allowable values 6930 are: <ul> 6931 <li>truncate - paths are truncated to the maximum length</li> 6932 <li>fail - paths greater than the maximim cause a build exception</li> 6933 <li>warn - paths greater than the maximum cause a warning and GNU is 6934 used</li> 6935 <li>gnu - GNU extensions are used for any paths greater than the 6936 maximum</li> 6937 <li>omit - paths greater than the maximum are omitted from the 6938 archive</li> 6939 </ul></td> 6940 <td>warn</td> 6941 <td>No</td> 6942 </tr> 6943 <tr> 6944 <td>prefix</td> 6945 <td>String</td> 6946 <td>File path prefix to use when adding files to archive</td> 6947 <td>none</td> 6948 <td>No</td> 6949 </tr> 6950 </tbody> 6951 </table> 6952 <p> 6953 <b>Important note #1:</b> files are not replaced if they are already present in the 6954 archive. </p> 6955 <p> 6956 <b>Important note #2:</b> using basedir and fileset simultaneously can result in strange 6957 contents in the archive. </p> 6958 <h3>Supported Nested Tags</h3> 6959 <ul> 6960 <li>fileset</li> 6961 </ul> 6962 <h2> 6963 <a name="UntarTask"></a> UntarTask </h2> 6964 <p> The <em>UntarTask</em> unpacks one or more tar archives. </p> 6965 <h3>Examples</h3> 6966 <pre><untar file="testtar.tar.gz" todir="dest"> 7375 6967 <fileset dir="."> 7376 6968 <include name="*.tar.gz"/> … … 7379 6971 </untar> 7380 6972 </pre> 7381 <h3>Attributes</h3> 7382 <table> 7383 <thead> 7384 <tr> 7385 <th>Name</th> 7386 <th>Type</th> 7387 <th>Description</th> 7388 <th>Default</th> 7389 <th>Required</th> 7390 </tr> 7391 </thead> 7392 <tbody> 7393 <tr> 7394 <td>file</td> 7395 <td>String</td> 7396 <td>Archive filename</td> 7397 <td>n/a</td> 7398 <td>No</td> 7399 </tr> 7400 <tr> 7401 <td>todir</td> 7402 <td>String</td> 7403 <td>Directory to unpack the archive(s) to</td> 7404 <td>none</td> 7405 <td>Yes</td> 7406 </tr> 7407 <tr> 7408 <td>removepath</td> 7409 <td>String</td> 7410 <td>Path to remove from files in the archive(s)</td> 7411 <td>none</td> 7412 <td>No</td> 7413 </tr> 7414 <tr> 7415 <td>forceExtract</td> 7416 <td>Boolean</td> 7417 <td>When set to false, only extract files if the destination does not exist yet or is older than the archive. 7418 When set to true, always extract files.</td> 7419 <td>false</td> 7420 <td>No</td> 7421 </tr> 7422 </tbody> 7423 </table> 7424 <h3>Supported Nested Tags</h3> 7425 <ul> 7426 <li>fileset</li> 7427 </ul> 7428 <h2> 7429 <a name="UnzipTask"></a>UnzipTask 7430 </h2> 7431 <p> 7432 The <em>UnzipTask</em> unpacks one or more ZIP archives. 7433 </p> 7434 <h3>Examples</h3> 7435 <pre><unzip file="testzip.zip" todir="dest"> 6973 <h3>Attributes</h3> 6974 <table> 6975 <thead> 6976 <tr> 6977 <th>Name</th> 6978 <th>Type</th> 6979 <th>Description</th> 6980 <th>Default</th> 6981 <th>Required</th> 6982 </tr> 6983 </thead> 6984 <tbody> 6985 <tr> 6986 <td>file</td> 6987 <td>String</td> 6988 <td>Archive filename</td> 6989 <td>n/a</td> 6990 <td>No</td> 6991 </tr> 6992 <tr> 6993 <td>todir</td> 6994 <td>String</td> 6995 <td>Directory to unpack the archive(s) to</td> 6996 <td>none</td> 6997 <td>Yes</td> 6998 </tr> 6999 <tr> 7000 <td>removepath</td> 7001 <td>String</td> 7002 <td>Path to remove from files in the archive(s)</td> 7003 <td>none</td> 7004 <td>No</td> 7005 </tr> 7006 <tr> 7007 <td>forceExtract</td> 7008 <td>Boolean</td> 7009 <td>When set to false, only extract files if the destination does not exist yet 7010 or is older than the archive. When set to true, always extract files.</td> 7011 <td>false</td> 7012 <td>No</td> 7013 </tr> 7014 </tbody> 7015 </table> 7016 <h3>Supported Nested Tags</h3> 7017 <ul> 7018 <li>fileset</li> 7019 </ul> 7020 <h2> 7021 <a name="UnzipTask"></a>UnzipTask </h2> 7022 <p> The <em>UnzipTask</em> unpacks one or more ZIP archives. </p> 7023 <h3>Examples</h3> 7024 <pre><unzip file="testzip.zip" todir="dest"> 7436 7025 <fileset dir="."> 7437 7026 <include name="*.zip"/> … … 7439 7028 </unzip> 7440 7029 </pre> 7441 <h3>Attributes</h3> 7442 <table> 7443 <thead> 7444 <tr> 7445 <th>Name</th> 7446 <th>Type</th> 7447 <th>Description</th> 7448 <th>Default</th> 7449 <th>Required</th> 7450 </tr> 7451 </thead> 7452 <tbody> 7453 <tr> 7454 <td>file</td> 7455 <td>String</td> 7456 <td>Archive filename</td> 7457 <td>n/a</td> 7458 <td>No</td> 7459 </tr> 7460 <tr> 7461 <td>todir</td> 7462 <td>String</td> 7463 <td>Directory to unpack the archive(s) to</td> 7464 <td>none</td> 7465 <td>Yes</td> 7466 </tr> 7467 <tr> 7468 <td>forceExtract</td> 7469 <td>Boolean</td> 7470 <td>When set to false, only extract files if the destination does not exist yet or is older than the archive. 7471 When set to true, always extract files.</td> 7472 <td>false</td> 7473 <td>No</td> 7474 </tr> 7475 </tbody> 7476 </table> 7477 <h3>Supported Nested Tags</h3> 7478 <ul> 7479 <li>fileset</li> 7480 </ul> 7481 <h2> 7482 <a name="VersionTask"></a>VersionTask 7483 </h2> 7484 <p> 7485 The <em>VersionTask</em> increments a three-part version number from a 7486 given file and writes it back to the file. The resulting version 7487 number is also published under supplied property. 7488 </p> 7489 <p>The version number in the text file is expected in the format of 7490 Major.Minor.Bugfix (e.g. 1.3.2).</p> 7491 <h3>Examples</h3> 7492 <pre><version releasetype="Major" file="version.txt" property="version.number"/></pre> 7493 <h3>Attributes</h3> 7494 <table> 7495 <thead> 7496 <tr> 7497 <th>Name</th> 7498 <th>Type</th> 7499 <th>Description</th> 7500 <th>Default</th> 7501 <th>Required</th> 7502 </tr> 7503 </thead> 7504 <tbody> 7505 <tr> 7506 <td>releasetype</td> 7507 <td>String</td> 7508 <td>Specifies desired version release (Major, Minor or Bugfix)</td> 7509 <td>n/a</td> 7510 <td>Yes</td> 7511 </tr> 7512 <tr> 7513 <td>file</td> 7514 <td>String</td> 7515 <td>File containing three-part version number to increment</td> 7516 <td>n/a</td> 7517 <td>Yes</td> 7518 </tr> 7519 <tr> 7520 <td>property</td> 7521 <td>String</td> 7522 <td>Property which contains the resulting version number</td> 7523 <td>n/a</td> 7524 <td>Yes</td> 7525 </tr> 7526 </tbody> 7527 </table> 7528 <h2> 7529 <a name="XmlLintTask"></a>XmlLintTask 7530 </h2> 7531 <p> 7532 The <em>XmlLintTask</em> checks syntax (lint) one or more XML files 7533 against an XML Schema Definition. 7534 </p> 7535 <h3>Attributes</h3> 7536 <table> 7537 <thead> 7538 <tr> 7539 <th>Name</th> 7540 <th>Type</th> 7541 <th>Description</th> 7542 <th>Default</th> 7543 <th>Required</th> 7544 </tr> 7545 </thead> 7546 <tbody> 7547 <tr> 7548 <td>schema</td> 7549 <td>String</td> 7550 <td>Path to XSD file</td> 7551 <td>n/a</td> 7552 <td>Yes</td> 7553 </tr> 7554 <tr> 7555 <td>file</td> 7556 <td>String</td> 7557 <td>Path to XML file</td> 7558 <td>n/a</td> 7559 <td>No</td> 7560 </tr> 7561 <tr> 7562 <td>haltonfailure</td> 7563 <td>Boolean</td> 7564 <td>Stops the build when validation fails</td> 7565 <td>true</td> 7566 <td>No</td> 7567 </tr> 7568 </tbody> 7569 </table> 7570 <h3>Supported Nested Tags</h3> 7571 <ul> 7572 <li>fileset</li> 7573 </ul> 7574 <h3>Example</h3> 7575 <pre> 7030 <h3>Attributes</h3> 7031 <table> 7032 <thead> 7033 <tr> 7034 <th>Name</th> 7035 <th>Type</th> 7036 <th>Description</th> 7037 <th>Default</th> 7038 <th>Required</th> 7039 </tr> 7040 </thead> 7041 <tbody> 7042 <tr> 7043 <td>file</td> 7044 <td>String</td> 7045 <td>Archive filename</td> 7046 <td>n/a</td> 7047 <td>No</td> 7048 </tr> 7049 <tr> 7050 <td>todir</td> 7051 <td>String</td> 7052 <td>Directory to unpack the archive(s) to</td> 7053 <td>none</td> 7054 <td>Yes</td> 7055 </tr> 7056 <tr> 7057 <td>forceExtract</td> 7058 <td>Boolean</td> 7059 <td>When set to false, only extract files if the destination does not exist yet 7060 or is older than the archive. When set to true, always extract files.</td> 7061 <td>false</td> 7062 <td>No</td> 7063 </tr> 7064 </tbody> 7065 </table> 7066 <h3>Supported Nested Tags</h3> 7067 <ul> 7068 <li>fileset</li> 7069 </ul> 7070 <h2> 7071 <a name="VersionTask"></a>VersionTask </h2> 7072 <p> The <em>VersionTask</em> increments a three-part version number from a given file and 7073 writes it back to the file. The resulting version number is also published under 7074 supplied property. </p> 7075 <p>The version number in the text file is expected in the format of Major.Minor.Bugfix (e.g. 7076 1.3.2).</p> 7077 <h3>Examples</h3> 7078 <pre><version releasetype="Major" file="version.txt" property="version.number"/></pre> 7079 <h3>Attributes</h3> 7080 <table> 7081 <thead> 7082 <tr> 7083 <th>Name</th> 7084 <th>Type</th> 7085 <th>Description</th> 7086 <th>Default</th> 7087 <th>Required</th> 7088 </tr> 7089 </thead> 7090 <tbody> 7091 <tr> 7092 <td>releasetype</td> 7093 <td>String</td> 7094 <td>Specifies desired version release (Major, Minor or Bugfix)</td> 7095 <td>n/a</td> 7096 <td>Yes</td> 7097 </tr> 7098 <tr> 7099 <td>file</td> 7100 <td>String</td> 7101 <td>File containing three-part version number to increment</td> 7102 <td>n/a</td> 7103 <td>Yes</td> 7104 </tr> 7105 <tr> 7106 <td>property</td> 7107 <td>String</td> 7108 <td>Property which contains the resulting version number</td> 7109 <td>n/a</td> 7110 <td>Yes</td> 7111 </tr> 7112 </tbody> 7113 </table> 7114 <h2> 7115 <a name="XmlLintTask"></a>XmlLintTask </h2> 7116 <p>The <em>XmlLintTask</em> checks syntax (lint) one or more XML files against an XML Schema 7117 Definition. </p><p><em>Note:</em> This assumes that the DOM extension is loaded in PHP5 7118 since this is used to drive the validation process.</p> 7119 <h3>Attributes</h3> 7120 <table> 7121 <thead> 7122 <tr> 7123 <th>Name</th> 7124 <th>Type</th> 7125 <th>Description</th> 7126 <th>Default</th> 7127 <th>Required</th> 7128 </tr> 7129 </thead> 7130 <tbody> 7131 <tr> 7132 <td>schema</td> 7133 <td>String</td> 7134 <td>Path to XSD file</td> 7135 <td>n/a</td> 7136 <td>Yes</td> 7137 </tr> 7138 <tr> 7139 <td>file</td> 7140 <td>String</td> 7141 <td>Path to XML file</td> 7142 <td>n/a</td> 7143 <td>No</td> 7144 </tr> 7145 <tr> 7146 <td>haltonfailure</td> 7147 <td>Boolean</td> 7148 <td>Stops the build when validation fails</td> 7149 <td>true</td> 7150 <td>No</td> 7151 </tr> 7152 <tr> 7153 <td>useRNG</td> 7154 <td>String</td> 7155 <td>Set to Yes if the Schema is in the newer Relax NG format</td> 7156 <td>false</td> 7157 <td>No</td> 7158 </tr> 7159 </tbody> 7160 </table> 7161 <h3>Supported Nested Tags</h3> 7162 <ul> 7163 <li>fileset</li> 7164 </ul> 7165 <h3>Example 1</h3> 7166 <pre> 7576 7167 <xmllint schema="schema.xsd" file="config.xml"/> 7577 7168 </pre> 7578 <p>Validate one XML file against one XSD file.</p>7579 <pre>7169 <p>Validate one XML file against one XSD file.</p> 7170 <pre> 7580 7171 <xmllint schema="schema.xsd"> 7581 7172 <fileset dir="."> … … 7584 7175 </xmllint> 7585 7176 </pre> 7586 <p>Validate more XML files against one XSD file.</p> 7587 <h2> 7588 <a name="XmlPropertyTask"></a>XmlPropertyTask 7589 </h2> 7590 <p>Loads property values from a well-formed xml file. There are no 7591 other restrictions than "well-formed".</p> 7592 <h3>Attributes</h3> 7593 <table> 7594 <thead> 7595 <tr> 7596 <th>Name</th> 7597 <th>Type</th> 7598 <th>Description</th> 7599 <th>Default</th> 7600 <th>Required</th> 7601 </tr> 7602 </thead> 7603 <tbody> 7604 <tr> 7605 <td>file</td> 7606 <td>String</td> 7607 <td>The XML file to parse.</td> 7608 <td>n/a</td> 7609 <td>Yes</td> 7610 </tr> 7611 <tr> 7612 <td>prefix</td> 7613 <td>String</td> 7614 <td>The prefix to prepend to each property</td> 7615 <td>n/a</td> 7616 <td>No</td> 7617 </tr> 7618 <tr> 7619 <td>keepRoot</td> 7620 <td>Boolean</td> 7621 <td>Keep the xml root tag as the first value in the property 7622 name.</td> 7623 <td>true</td> 7624 <td>No</td> 7625 </tr> 7626 <tr> 7627 <td>collapseAttributes</td> 7628 <td>Boolean</td> 7629 <td>Treat attributes as nested elements.</td> 7630 <td>false</td> 7631 <td>No</td> 7632 </tr> 7633 <tr> 7634 <td>delimiter</td> 7635 <td>String</td> 7636 <td>Delimiter for splitting multiple values.</td> 7637 <td>,</td> 7638 <td>No</td> 7639 </tr> 7640 </tbody> 7641 </table> 7642 <h3>Example</h3> 7643 <p>Consider the following XML file:</p> 7644 <pre> 7177 <p>Validate more XML files against one XSD file.</p> 7178 <h3>Example 2</h3> 7179 <pre> 7180 <fileset dir="./sources" id="sources"> 7181 <include name="main.xml"/> 7182 <include name="chapter*.xml"/> 7183 <include name="appendix*.xml"/> 7184 </fileset> 7185 <property name="docbook.relaxng" value="/usr/share/xml/docbook/schema/rng/5.0/docbookxi.rng"/> 7186 7187 <xmllint schema="${docbook.relaxng}" useRNG="yes"> 7188 <fileset refid="sources" /> 7189 </xmllint> 7190 </pre> 7191 <p>Validate a set of DocBook files against the DocBook RNG grammar</p> 7192 <h2> 7193 <a name="XmlPropertyTask"></a>XmlPropertyTask </h2> 7194 <p>Loads property values from a well-formed xml file. There are no other restrictions than 7195 "well-formed".</p> 7196 <h3>Attributes</h3> 7197 <table> 7198 <thead> 7199 <tr> 7200 <th>Name</th> 7201 <th>Type</th> 7202 <th>Description</th> 7203 <th>Default</th> 7204 <th>Required</th> 7205 </tr> 7206 </thead> 7207 <tbody> 7208 <tr> 7209 <td>file</td> 7210 <td>String</td> 7211 <td>The XML file to parse.</td> 7212 <td>n/a</td> 7213 <td>Yes</td> 7214 </tr> 7215 <tr> 7216 <td>prefix</td> 7217 <td>String</td> 7218 <td>The prefix to prepend to each property</td> 7219 <td>n/a</td> 7220 <td>No</td> 7221 </tr> 7222 <tr> 7223 <td>keepRoot</td> 7224 <td>Boolean</td> 7225 <td>Keep the xml root tag as the first value in the property name.</td> 7226 <td>true</td> 7227 <td>No</td> 7228 </tr> 7229 <tr> 7230 <td>collapseAttributes</td> 7231 <td>Boolean</td> 7232 <td>Treat attributes as nested elements.</td> 7233 <td>false</td> 7234 <td>No</td> 7235 </tr> 7236 <tr> 7237 <td>delimiter</td> 7238 <td>String</td> 7239 <td>Delimiter for splitting multiple values.</td> 7240 <td>,</td> 7241 <td>No</td> 7242 </tr> 7243 </tbody> 7244 </table> 7245 <h3>Example</h3> 7246 <p>Consider the following XML file:</p> 7247 <pre> 7645 7248 <root-tag myattr="true"> 7646 7249 <inner-tag someattr="val">Text</inner-tag> 7647 7250 <a2><a3><a4>false</a4></a3></a2> 7648 7251 </root-tag></pre> 7649 <p> 7650 Used with the the following entry (<b>default</b>): 7651 </p> 7652 <pre> 7252 <p> Used with the the following entry (<b>default</b>): </p> 7253 <pre> 7653 7254 <xmlproperty file="somefile.xml"/> 7654 7255 </pre> 7655 <p>results in the following properties:</p>7656 <pre>7256 <p>results in the following properties:</p> 7257 <pre> 7657 7258 root-tag(myattr)=true 7658 7259 root-tag.inner-tag=Text 7659 7260 root-tag.inner-tag(someattr)=val 7660 7261 root-tag.a2.a3.a4=false</pre> 7661 <p> 7662 Used with the the following entry (<b>collapseAttributes=true</b>): 7663 </p> 7664 <pre> 7262 <p> Used with the the following entry (<b>collapseAttributes=true</b>): </p> 7263 <pre> 7665 7264 <xmlproperty file="somefile.xml" collapseAttributes="true"/> 7666 7265 </pre> 7667 <p>results in the following properties:</p>7668 <pre>7266 <p>results in the following properties:</p> 7267 <pre> 7669 7268 root-tag.myattr=true 7670 7269 root-tag.inner-tag=Text 7671 7270 root-tag.inner-tag.someatt=val 7672 7271 root-tag.a2.a3.a4=false</pre> 7673 <p> 7674 Used with the the following entry (<b>keepRoot=false</b>): 7675 </p> 7676 <pre> 7272 <p> Used with the the following entry (<b>keepRoot=false</b>): </p> 7273 <pre> 7677 7274 <xmlproperty file="somefile.xml" keepRoot="false"/> 7678 7275 </pre> 7679 <p>results in the following properties:</p>7680 <pre>7276 <p>results in the following properties:</p> 7277 <pre> 7681 7278 inner-tag=Text 7682 7279 inner-tag(someattr)=val 7683 7280 a2.a3.a4=false</pre> 7684 <h2> 7685 <a name="ZendCodeAnalyzerTask"></a>ZendCodeAnalyzerTask 7686 </h2> 7687 <p> 7688 The <em>ZendCodeAnalyzerTask</em> analyze PHP source files using the 7689 Zend Code Analyzer tool that ships with all versions of Zend Studio. 7690 </p> 7691 <h3>Attributes</h3> 7692 <table> 7693 <thead> 7694 <tr> 7695 <th>Name</th> 7696 <th>Type</th> 7697 <th>Description</th> 7698 <th>Default</th> 7699 <th>Required</th> 7700 </tr> 7701 </thead> 7702 <tbody> 7703 <tr> 7704 <td>analyzerPath</td> 7705 <td>String</td> 7706 <td>Path to Zend Code Analyzer binary</td> 7707 <td>n/a</td> 7708 <td>Yes</td> 7709 </tr> 7710 <tr> 7711 <td>file</td> 7712 <td>String</td> 7713 <td>Path to PHP source file</td> 7714 <td>n/a</td> 7715 <td>No</td> 7716 </tr> 7717 <tr> 7718 <td>disable</td> 7719 <td>String</td> 7720 <td>Disable warnings seperated by comma</td> 7721 <td>n/a</td> 7722 <td>No</td> 7723 </tr> 7724 <tr> 7725 <td>enable</td> 7726 <td>String</td> 7727 <td>Enable warnings separated by comma</td> 7728 <td>n/a</td> 7729 <td>No</td> 7730 </tr> 7731 <tr> 7732 <td>haltonwarning</td> 7733 <td>Boolean</td> 7734 <td>Stop the build process if warnings occurred during the run. 7735 </td> 7736 <td>false</td> 7737 <td>No</td> 7738 </tr> 7739 </tbody> 7740 </table> 7741 <h3>Supported Nested Tags</h3> 7742 <ul> 7743 <li>fileset</li> 7744 </ul> 7745 <h3>Example</h3> 7746 <pre> 7281 <h2> 7282 <a name="ZendCodeAnalyzerTask"></a>ZendCodeAnalyzerTask </h2> 7283 <p> The <em>ZendCodeAnalyzerTask</em> analyze PHP source files using the Zend Code Analyzer 7284 tool that ships with all versions of Zend Studio. </p> 7285 <h3>Attributes</h3> 7286 <table> 7287 <thead> 7288 <tr> 7289 <th>Name</th> 7290 <th>Type</th> 7291 <th>Description</th> 7292 <th>Default</th> 7293 <th>Required</th> 7294 </tr> 7295 </thead> 7296 <tbody> 7297 <tr> 7298 <td>analyzerPath</td> 7299 <td>String</td> 7300 <td>Path to Zend Code Analyzer binary</td> 7301 <td>n/a</td> 7302 <td>Yes</td> 7303 </tr> 7304 <tr> 7305 <td>file</td> 7306 <td>String</td> 7307 <td>Path to PHP source file</td> 7308 <td>n/a</td> 7309 <td>No</td> 7310 </tr> 7311 <tr> 7312 <td>disable</td> 7313 <td>String</td> 7314 <td>Disable warnings seperated by comma</td> 7315 <td>n/a</td> 7316 <td>No</td> 7317 </tr> 7318 <tr> 7319 <td>enable</td> 7320 <td>String</td> 7321 <td>Enable warnings separated by comma</td> 7322 <td>n/a</td> 7323 <td>No</td> 7324 </tr> 7325 <tr> 7326 <td>haltonwarning</td> 7327 <td>Boolean</td> 7328 <td>Stop the build process if warnings occurred during the run. </td> 7329 <td>false</td> 7330 <td>No</td> 7331 </tr> 7332 </tbody> 7333 </table> 7334 <h3>Supported Nested Tags</h3> 7335 <ul> 7336 <li>fileset</li> 7337 </ul> 7338 <h3>Example</h3> 7339 <pre> 7747 7340 <zendcodeanalyzer analyzerPath="/usr/local/Zend/ZendStudioClient-5.1.0/bin/ZendCodeAnalyzer" file="SomeClass.php"/> 7748 7341 </pre> 7749 <p>Analyze one PHP source file with all default warnings enabled.</p>7750 <pre>7342 <p>Analyze one PHP source file with all default warnings enabled.</p> 7343 <pre> 7751 7344 <zendcodeanalyzer analyzerPath="/usr/local/Zend/ZendStudioClient-5.1.0/bin/ZendCodeAnalyzer" disable="var-ref-notmodified,if-if-else"> 7752 7345 <fileset dir="."> … … 7755 7348 </zendcodeanalyzer> 7756 7349 </pre> 7757 <p>Analyze a set of PHP source files and disable a few warnings.</p> 7758 <p> 7759 <b>NOTE:</b> the <em>analyze</em> tag has been deprecated as of Phing 7760 2.4. 7761 </p> 7762 7763 <h2> 7764 <a name="ZendGuardEncodeTask"></a>ZendGuardEncodeTask 7765 </h2> 7766 <p> 7767 The <em>ZendGuardEncodeTask</em> is a wrapper for ZendGuard zendenc 7768 executable. It pre-compiles the PHP code which improves speed and can 7769 prevent unauthorized code modification. Additionally it allows signing 7770 or licensing the code so it can only be used with a valid 7771 license. 7772 </p> 7773 <p> 7774 For more information about ZendGuard encode parameters see the <a 7775 href="http://static.zend.com/topics/Zend-Guard-User-Guidev5x.pdf">ZendGuard 7776 documentation</a>. 7777 </p> 7778 <h3>Attributes</h3> 7779 <table> 7780 <thead> 7781 <tr> 7782 <th>Name</th> 7783 <th>Type</th> 7784 <th>Description</th> 7785 <th>Default</th> 7786 <th>Required</th> 7787 </tr> 7788 </thead> 7789 <tbody> 7790 <tr> 7791 <td>zendEncoderPath</td> 7792 <td>String</td> 7793 <td>Path to zendenc or zendenc5 binary.</td> 7794 <td>n/a</td> 7795 <td>Yes</td> 7796 </tr> 7797 <tr> 7798 <td>deleteSource</td> 7799 <td>Boolean</td> 7800 <td>Whether to delete the original file and replace with 7801 encoded.</td> 7802 <td>true</td> 7803 <td>No</td> 7804 </tr> 7805 <tr> 7806 <td>renameSourceExt</td> 7807 <td>String</td> 7808 <td>If defined the original file will be copied to 7809 originalfile.renameSourceExt before encoding. This property 7810 overrides the deleteSource property.</td> 7811 <td>n/a</td> 7812 <td>No</td> 7813 </tr> 7814 <tr> 7815 <td>shortTags</td> 7816 <td>Boolean</td> 7817 <td>Turns on/off support for PHP short tags (<?). True to 7818 enable support.</td> 7819 <td>true</td> 7820 <td>No</td> 7821 </tr> 7822 <tr> 7823 <td>aspTags</td> 7824 <td>Boolean</td> 7825 <td>Turns on/off support for ASP tags (<%). True to enable 7826 support.</td> 7827 <td>false</td> 7828 <td>No</td> 7829 </tr> 7830 <tr> 7831 <td>noHeader</td> 7832 <td>Boolean</td> 7833 <td>Disables the PHP-compatible header that is added to the top 7834 of every encoded file by default and is displayed if the Zend 7835 Optimizer is not properly installed.</td> 7836 <td>false</td> 7837 <td>No</td> 7838 </tr> 7839 <tr> 7840 <td>useCrypto</td> 7841 <td>Boolean</td> 7842 <td>Enables cryptography support.</td> 7843 <td>false</td> 7844 <td>No</td> 7845 </tr> 7846 <tr> 7847 <td>encodedOnly</td> 7848 <td>Boolean</td> 7849 <td>If enabled the encoded files will only work with other 7850 encoded files ( I.e. encoded and not-encoded files cannot be used 7851 together).</td> 7852 <td>false</td> 7853 <td>No</td> 7854 </tr> 7855 <tr> 7856 <td>forceEncode</td> 7857 <td>Boolean</td> 7858 <td>Allow encoding previously encoded files. Not recommended.</td> 7859 <td>false</td> 7860 <td>No</td> 7861 </tr> 7862 <tr> 7863 <td>expires</td> 7864 <td>String</td> 7865 <td>Make an encoded file to expire on the given data. Date is 7866 in yyyy-mm-dd format.</td> 7867 <td>n/a</td> 7868 <td>No</td> 7869 </tr> 7870 <tr> 7871 <td>obfuscationLevel</td> 7872 <td>Integer</td> 7873 <td>Level of obfuscation. Defaults to 0 (no obfuscation). </td> 7874 <td>0</td> 7875 <td>No</td> 7876 </tr> 7877 <tr> 7878 <td>optMask</td> 7879 <td>Integer</td> 7880 <td>Optimization mask. Integer representing a bit mask.</td> 7881 <td>n/a</td> 7882 <td>No</td> 7883 </tr> 7884 <tr> 7885 <td>privateKeyPath</td> 7886 <td>String</td> 7887 <td>Path to the company private key. This is required when 7888 either signProduct or licenseProduct is enabled.</td> 7889 <td>n/a</td> 7890 <td>No</td> 7891 </tr> 7892 <tr> 7893 <td>licenseProduct</td> 7894 <td>Boolean</td> 7895 <td>Enabled product licensing. The encoded files won't work 7896 without a valid license. If enabled privateKeyPath property also 7897 needs to be defined.</td> 7898 <td>false</td> 7899 <td>No</td> 7900 </tr> 7901 <tr> 7902 <td>signProduct</td> 7903 <td>Boolean</td> 7904 <td>Enabled product signing. If signing is enabled the files 7905 will be encoded with license support. However valid license won't 7906 be required for the files to work. If enabled privatKeyPath 7907 property also needs to be defined.</td> 7908 <td>false</td> 7909 <td>No</td> 7910 </tr> 7911 <tr> 7912 <td>productName</td> 7913 <td>String</td> 7914 <td>Name of the product. This must match the product name in 7915 the license and is required when either licenseProduct or 7916 signProduct is enabled.</td> 7917 <td>n/a</td> 7918 <td>No</td> 7919 </tr> 7920 <tr> 7921 <td>prologFile</td> 7922 <td>String</td> 7923 <td>Path to a file containing a text that will be prepended to 7924 each encoded file and displayed in case the Zend Optimizer is not 7925 installed.</td> 7926 <td>n/a</td> 7927 <td>No</td> 7928 </tr> 7929 </tbody> 7930 </table> 7931 <h3>Supported Nested Tags</h3> 7932 <ul> 7933 <li>fileset</li> 7934 </ul> 7935 <h3>Example</h3> 7936 <pre><zendguardencode<br /> shortTags="false"<br /> productName="Phing"<br /> privateKeyPath="/var/data/phing.key"<br /> licenseProduct="true"<br /> zendEncoderPath="/usr/local/Zend/ZendGuard-5_0_1/bin/zendenc5"<br /> ><br /><br /> <fileset dir="src"><br /> <include name="**/*.php" /><br /> <exclude name="cache/**" /><br /> <exclude name="plugins/**" /><br /> </fileset><br /> <br /> <fileset dir="src"><br /> <include name="plugins/cs*/**/*.php" /><br /> <include name="plugins/cs*/*.php" /><br /> </fileset><br /></zendguardencode><br /> 7350 <p>Analyze a set of PHP source files and disable a few warnings.</p> 7351 <p> 7352 <b>NOTE:</b> the <em>analyze</em> tag has been deprecated as of Phing 2.4. </p> 7353 <h2> 7354 <a name="ZendGuardEncodeTask"></a>ZendGuardEncodeTask </h2> 7355 <p> The <em>ZendGuardEncodeTask</em> is a wrapper for ZendGuard zendenc executable. It 7356 pre-compiles the PHP code which improves speed and can prevent unauthorized code 7357 modification. Additionally it allows signing or licensing the code so it can only be 7358 used with a valid license. </p> 7359 <p> For more information about ZendGuard encode parameters see the <a 7360 href="http://static.zend.com/topics/Zend-Guard-User-Guidev5x.pdf">ZendGuard 7361 documentation</a>. </p> 7362 <h3>Attributes</h3> 7363 <table> 7364 <thead> 7365 <tr> 7366 <th>Name</th> 7367 <th>Type</th> 7368 <th>Description</th> 7369 <th>Default</th> 7370 <th>Required</th> 7371 </tr> 7372 </thead> 7373 <tbody> 7374 <tr> 7375 <td>zendEncoderPath</td> 7376 <td>String</td> 7377 <td>Path to zendenc or zendenc5 binary.</td> 7378 <td>n/a</td> 7379 <td>Yes</td> 7380 </tr> 7381 <tr> 7382 <td>deleteSource</td> 7383 <td>Boolean</td> 7384 <td>Whether to delete the original file and replace with encoded.</td> 7385 <td>true</td> 7386 <td>No</td> 7387 </tr> 7388 <tr> 7389 <td>renameSourceExt</td> 7390 <td>String</td> 7391 <td>If defined the original file will be copied to 7392 originalfile.renameSourceExt before encoding. This property overrides 7393 the deleteSource property.</td> 7394 <td>n/a</td> 7395 <td>No</td> 7396 </tr> 7397 <tr> 7398 <td>shortTags</td> 7399 <td>Boolean</td> 7400 <td>Turns on/off support for PHP short tags (<?). True to enable 7401 support.</td> 7402 <td>true</td> 7403 <td>No</td> 7404 </tr> 7405 <tr> 7406 <td>aspTags</td> 7407 <td>Boolean</td> 7408 <td>Turns on/off support for ASP tags (<%). True to enable support.</td> 7409 <td>false</td> 7410 <td>No</td> 7411 </tr> 7412 <tr> 7413 <td>noHeader</td> 7414 <td>Boolean</td> 7415 <td>Disables the PHP-compatible header that is added to the top of every encoded 7416 file by default and is displayed if the Zend Optimizer is not properly 7417 installed.</td> 7418 <td>false</td> 7419 <td>No</td> 7420 </tr> 7421 <tr> 7422 <td>useCrypto</td> 7423 <td>Boolean</td> 7424 <td>Enables cryptography support.</td> 7425 <td>false</td> 7426 <td>No</td> 7427 </tr> 7428 <tr> 7429 <td>encodedOnly</td> 7430 <td>Boolean</td> 7431 <td>If enabled the encoded files will only work with other encoded files ( I.e. 7432 encoded and not-encoded files cannot be used together).</td> 7433 <td>false</td> 7434 <td>No</td> 7435 </tr> 7436 <tr> 7437 <td>forceEncode</td> 7438 <td>Boolean</td> 7439 <td>Allow encoding previously encoded files. Not recommended.</td> 7440 <td>false</td> 7441 <td>No</td> 7442 </tr> 7443 <tr> 7444 <td>expires</td> 7445 <td>String</td> 7446 <td>Make an encoded file to expire on the given data. Date is in yyyy-mm-dd 7447 format.</td> 7448 <td>n/a</td> 7449 <td>No</td> 7450 </tr> 7451 <tr> 7452 <td>obfuscationLevel</td> 7453 <td>Integer</td> 7454 <td>Level of obfuscation. Defaults to 0 (no obfuscation). </td> 7455 <td>0</td> 7456 <td>No</td> 7457 </tr> 7458 <tr> 7459 <td>optMask</td> 7460 <td>Integer</td> 7461 <td>Optimization mask. Integer representing a bit mask.</td> 7462 <td>n/a</td> 7463 <td>No</td> 7464 </tr> 7465 <tr> 7466 <td>privateKeyPath</td> 7467 <td>String</td> 7468 <td>Path to the company private key. This is required when either signProduct or 7469 licenseProduct is enabled.</td> 7470 <td>n/a</td> 7471 <td>No</td> 7472 </tr> 7473 <tr> 7474 <td>licenseProduct</td> 7475 <td>Boolean</td> 7476 <td>Enabled product licensing. The encoded files won't work without a valid 7477 license. If enabled privateKeyPath property also needs to be defined.</td> 7478 <td>false</td> 7479 <td>No</td> 7480 </tr> 7481 <tr> 7482 <td>signProduct</td> 7483 <td>Boolean</td> 7484 <td>Enabled product signing. If signing is enabled the files will be encoded 7485 with license support. However valid license won't be required for the files 7486 to work. If enabled privatKeyPath property also needs to be defined.</td> 7487 <td>false</td> 7488 <td>No</td> 7489 </tr> 7490 <tr> 7491 <td>productName</td> 7492 <td>String</td> 7493 <td>Name of the product. This must match the product name in the license and is 7494 required when either licenseProduct or signProduct is enabled.</td> 7495 <td>n/a</td> 7496 <td>No</td> 7497 </tr> 7498 <tr> 7499 <td>prologFile</td> 7500 <td>String</td> 7501 <td>Path to a file containing a text that will be prepended to each encoded file 7502 and displayed in case the Zend Optimizer is not installed.</td> 7503 <td>n/a</td> 7504 <td>No</td> 7505 </tr> 7506 </tbody> 7507 </table> 7508 <h3>Supported Nested Tags</h3> 7509 <ul> 7510 <li>fileset</li> 7511 </ul> 7512 <h3>Example</h3> 7513 <pre><zendguardencode<br /> shortTags="false"<br /> productName="Phing"<br /> privateKeyPath="/var/data/phing.key"<br /> licenseProduct="true"<br /> zendEncoderPath="/usr/local/Zend/ZendGuard-5_0_1/bin/zendenc5"<br /> ><br /><br /> <fileset dir="src"><br /> <include name="**/*.php" /><br /> <exclude name="cache/**" /><br /> <exclude name="plugins/**" /><br /> </fileset><br /> <br /> <fileset dir="src"><br /> <include name="plugins/cs*/**/*.php" /><br /> <include name="plugins/cs*/*.php" /><br /> </fileset><br /></zendguardencode><br /> 7937 7514 </pre> 7938 <p>Encode all php files in the current directory and 7939 subdirectories. Exlude everything in cache/ and plugins/ but include 7940 everything in plugins that starts with cs.</p> 7941 <p></p> 7942 <h2> 7943 <a name="ZendGuardLicenseTask"></a>ZendGuardLicenseTask 7944 </h2> 7945 <p> 7946 The <em>ZendGuardLicenseTask</em> is a wrapper for ZendGuard 7947 zendenc_sign executable. It generates ZendGuard license either 7948 from a license template file or from the defined properties. 7949 </p> 7950 <p> 7951 For more information about ZendGuard sign parameters see the <a 7952 href="http://static.zend.com/topics/Zend-Guard-User-Guidev5x.pdf">ZendGuard 7953 documentation</a>. 7954 </p> 7955 <h3>Attributes</h3> 7956 <table> 7957 <thead> 7958 <tr> 7959 <th>Name</th> 7960 <th>Type</th> 7961 <th>Description</th> 7962 <th>Default</th> 7963 <th>Required</th> 7964 </tr> 7965 </thead> 7966 <tbody> 7967 <tr> 7968 <td>zendsignPath</td> 7969 <td>String</td> 7970 <td>Path to zendenc_sign binary.</td> 7971 <td>n/a</td> 7972 <td>Yes</td> 7973 </tr> 7974 <tr> 7975 <td>privateKeyPath</td> 7976 <td>String</td> 7977 <td>Path to the company private key. </td> 7978 <td>n/a</td> 7979 <td>Yes</td> 7980 </tr> 7981 <tr> 7982 <td>outputFile</td> 7983 <td>String</td> 7984 <td>Path where should the license be generated.</td> 7985 <td>n/a</td> 7986 <td>Yes</td> 7987 </tr> 7988 <tr> 7989 <td>licenseTemplate</td> 7990 <td>String</td> 7991 <td>Path to a license template file. If defined all other 7992 licensing properties will be ignored (even if they are otherwise 7993 required).</td> 7994 <td>n/a</td> 7995 <td>No</td> 7996 </tr> 7997 <tr> 7998 <td>productName</td> 7999 <td>String</td> 8000 <td>Name of the product. This has to match the product name 8001 that was used to encode the files (see ZendGuardEncodeTask).</td> 8002 <td>n/a</td> 8003 <td>Yes</td> 8004 </tr> 8005 <tr> 8006 <td>registeredTo</td> 8007 <td>String</td> 8008 <td>Name to which the product will be registered to.</td> 8009 <td>n/a</td> 8010 <td>Yes</td> 8011 </tr> 8012 <tr> 8013 <td>expires</td> 8014 <td>Mixed</td> 8015 <td>This allows to define when the license will expire. 8016 The license can be issued so it either never expires or 8017 expires at a specified data. <br /> Use:<br /> 8018 <ul> 8019 <li> 'Never', 0 or false to set expiry data to Never.</li> 8020 <li>Date in yyyy-mm-dd format to set the expiry date to a 8021 specific date.</li> 8022 <li>Relative format supported by strtotime function (e.g. '+6 8023 months' to generate a license that will expire in half a year).</li> 8024 </ul> 8025 </td> 8026 <td>n/a</td> 8027 <td>Yes</td> 8028 </tr> 8029 <tr> 8030 <td>ipRange</td> 8031 <td>String</td> 8032 <td>Limits the use of the license to IP addresses that fall 8033 within specification. Supports wildcards for any of the IP place 8034 holders, as well as the two types of the net masks (e.g. 8035 10.1.0.0/16 or 10.1.0.0./255.255.0.0).</td> 8036 <td>n/a</td> 8037 <td>No</td> 8038 </tr> 8039 <tr> 8040 <td>hardwareLocked</td> 8041 <td>Boolean</td> 8042 <td>Option that indicates if the license will be locked to a 8043 specific machine using the Zend Host ID code(s). If set to true the 8044 Host-ID property is required.</td> 8045 <td>false</td> 8046 <td>No</td> 8047 </tr> 8048 <tr> 8049 <td>hostID</td> 8050 <td>String</td> 8051 <td>Coded string (Zend Host ID) used to lock the license to a 8052 specific hardware. The Zend Host Id obtained from the machine where 8053 the encoded files and license are to be installed. Can be obtained 8054 by using the zendid utility.<br /> <br /> This is REQUIRED if the 8055 Hardware-Locked property is set to true. You can define multiple 8056 Host IDs separated by semicolon.</td> 8057 <td>n/a</td> 8058 <td>No</td> 8059 </tr> 8060 <tr> 8061 <td>userDefinedValues</td> 8062 <td>String</td> 8063 <td>Optional user defined values in format key=value. Multiple 8064 key-value pairs can be defined and separated by semicolon. These 8065 values then will be part of the license and can be obtained using 8066 the zend guard api (provided by Zend Optimizer). These values 8067 CANNOT be modified after the license is generated. Their 8068 modification would invalidate the license.<br /> Example: 8069 Drink=Tea;Material=Wood</td> 8070 <td>n/a</td> 8071 <td>No</td> 8072 </tr> 8073 <tr> 8074 <td>xUserDefinedValues</td> 8075 <td>String</td> 8076 <td>Optional user defined values in format key=value. Multiple 8077 key-value pairs can be defined and separated by semicolon. These 8078 values then will be part of the license and can be obtained using 8079 the zend guard api (provided by Zend Optimizer). These values CAN 8080 be modified after the license is generated. Their modification 8081 won't invalidate the license.<br /> Example: 8082 Drink=Tea;Material=Wood</td> 8083 <td>n/a</td> 8084 <td>No</td> 8085 </tr> 8086 </tbody> 8087 </table> 8088 <br /> 8089 <span style="font-weight: bold;">Examples</span> 8090 <pre><zendguardlicense<br /> privateKeyPath="/var/data/phing.key"<br /> zendsignPath="/usr/local/Zend/ZendGuard-5_0_1/bin/zendenc_sign"<br /> outputFile="./data/license/license.zl"<br /> productName="Phing"<br /> registeredTo="YourCustomerName"<br /> hardwareLocked="true"<br /> expires="+6 months"<br /> HostID="H:MFM43-Q9CXC-B9EDX-GWYSU;H:MFM43-Q9CXC-B9EDX-GWYTY"<br /> ipRange="10.1.*.*"<br /> userDefinedValues="Drink=Tea;Material=Wood"<br /> xUserDefinedValues="Drink=Tea;Material=Wood"<br />/><br /> 7515 <p>Encode all php files in the current directory and subdirectories. Exlude everything in 7516 cache/ and plugins/ but include everything in plugins that starts with cs.</p> 7517 <p></p> 7518 <h2> 7519 <a name="ZendGuardLicenseTask"></a>ZendGuardLicenseTask </h2> 7520 <p> The <em>ZendGuardLicenseTask</em> is a wrapper for ZendGuard zendenc_sign executable. 7521 It generates ZendGuard license either from a license template file or from the 7522 defined properties. </p> 7523 <p> For more information about ZendGuard sign parameters see the <a 7524 href="http://static.zend.com/topics/Zend-Guard-User-Guidev5x.pdf">ZendGuard 7525 documentation</a>. </p> 7526 <h3>Attributes</h3> 7527 <table> 7528 <thead> 7529 <tr> 7530 <th>Name</th> 7531 <th>Type</th> 7532 <th>Description</th> 7533 <th>Default</th> 7534 <th>Required</th> 7535 </tr> 7536 </thead> 7537 <tbody> 7538 <tr> 7539 <td>zendsignPath</td> 7540 <td>String</td> 7541 <td>Path to zendenc_sign binary.</td> 7542 <td>n/a</td> 7543 <td>Yes</td> 7544 </tr> 7545 <tr> 7546 <td>privateKeyPath</td> 7547 <td>String</td> 7548 <td>Path to the company private key. </td> 7549 <td>n/a</td> 7550 <td>Yes</td> 7551 </tr> 7552 <tr> 7553 <td>outputFile</td> 7554 <td>String</td> 7555 <td>Path where should the license be generated.</td> 7556 <td>n/a</td> 7557 <td>Yes</td> 7558 </tr> 7559 <tr> 7560 <td>licenseTemplate</td> 7561 <td>String</td> 7562 <td>Path to a license template file. If defined all other licensing 7563 properties will be ignored (even if they are otherwise required).</td> 7564 <td>n/a</td> 7565 <td>No</td> 7566 </tr> 7567 <tr> 7568 <td>productName</td> 7569 <td>String</td> 7570 <td>Name of the product. This has to match the product name that was used to 7571 encode the files (see ZendGuardEncodeTask).</td> 7572 <td>n/a</td> 7573 <td>Yes</td> 7574 </tr> 7575 <tr> 7576 <td>registeredTo</td> 7577 <td>String</td> 7578 <td>Name to which the product will be registered to.</td> 7579 <td>n/a</td> 7580 <td>Yes</td> 7581 </tr> 7582 <tr> 7583 <td>expires</td> 7584 <td>Mixed</td> 7585 <td>This allows to define when the license will expire. The license can be 7586 issued so it either never expires or expires at a specified data. <br /> Use:<br /> 7587 <ul> 7588 <li> 'Never', 0 or false to set expiry data to Never.</li> 7589 <li>Date in yyyy-mm-dd format to set the expiry date to a specific 7590 date.</li> 7591 <li>Relative format supported by strtotime function (e.g. '+6 months' to 7592 generate a license that will expire in half a year).</li> 7593 </ul> 7594 </td> 7595 <td>n/a</td> 7596 <td>Yes</td> 7597 </tr> 7598 <tr> 7599 <td>ipRange</td> 7600 <td>String</td> 7601 <td>Limits the use of the license to IP addresses that fall within 7602 specification. Supports wildcards for any of the IP place holders, as well 7603 as the two types of the net masks (e.g. 10.1.0.0/16 or 7604 10.1.0.0./255.255.0.0).</td> 7605 <td>n/a</td> 7606 <td>No</td> 7607 </tr> 7608 <tr> 7609 <td>hardwareLocked</td> 7610 <td>Boolean</td> 7611 <td>Option that indicates if the license will be locked to a specific machine 7612 using the Zend Host ID code(s). If set to true the Host-ID property is 7613 required.</td> 7614 <td>false</td> 7615 <td>No</td> 7616 </tr> 7617 <tr> 7618 <td>hostID</td> 7619 <td>String</td> 7620 <td>Coded string (Zend Host ID) used to lock the license to a specific hardware. 7621 The Zend Host Id obtained from the machine where the encoded files and 7622 license are to be installed. Can be obtained by using the zendid utility.<br /> 7623 <br /> This is REQUIRED if the Hardware-Locked property is set to true. You 7624 can define multiple Host IDs separated by semicolon.</td> 7625 <td>n/a</td> 7626 <td>No</td> 7627 </tr> 7628 <tr> 7629 <td>userDefinedValues</td> 7630 <td>String</td> 7631 <td>Optional user defined values in format key=value. Multiple key-value pairs 7632 can be defined and separated by semicolon. These values then will be part of 7633 the license and can be obtained using the zend guard api (provided by Zend 7634 Optimizer). These values CANNOT be modified after the license is generated. 7635 Their modification would invalidate the license.<br /> Example: 7636 Drink=Tea;Material=Wood</td> 7637 <td>n/a</td> 7638 <td>No</td> 7639 </tr> 7640 <tr> 7641 <td>xUserDefinedValues</td> 7642 <td>String</td> 7643 <td>Optional user defined values in format key=value. Multiple key-value pairs 7644 can be defined and separated by semicolon. These values then will be part of 7645 the license and can be obtained using the zend guard api (provided by Zend 7646 Optimizer). These values CAN be modified after the license is generated. 7647 Their modification won't invalidate the license.<br /> Example: 7648 Drink=Tea;Material=Wood</td> 7649 <td>n/a</td> 7650 <td>No</td> 7651 </tr> 7652 </tbody> 7653 </table> 7654 <br /> 7655 <span style="font-weight: bold;">Examples</span> 7656 <pre><zendguardlicense<br /> privateKeyPath="/var/data/phing.key"<br /> zendsignPath="/usr/local/Zend/ZendGuard-5_0_1/bin/zendenc_sign"<br /> outputFile="./data/license/license.zl"<br /> productName="Phing"<br /> registeredTo="YourCustomerName"<br /> hardwareLocked="true"<br /> expires="+6 months"<br /> HostID="H:MFM43-Q9CXC-B9EDX-GWYSU;H:MFM43-Q9CXC-B9EDX-GWYTY"<br /> ipRange="10.1.*.*"<br /> userDefinedValues="Drink=Tea;Material=Wood"<br /> xUserDefinedValues="Drink=Tea;Material=Wood"<br />/><br /> 8091 7657 </pre> 8092 <p>Creates a license using the given properties.</p>8093 <pre><zendguardlicense<br /> privateKeyPath="/var/data/phing.key"<br /> zendsignPath="/usr/local/Zend/ZendGuard-5_0_1/bin/zendenc_sign"<br /> outputFile="./data/license/license.zl"<br /> licenseTemplate="./data/license/license.template.zl"<br />/><br />7658 <p>Creates a license using the given properties.</p> 7659 <pre><zendguardlicense<br /> privateKeyPath="/var/data/phing.key"<br /> zendsignPath="/usr/local/Zend/ZendGuard-5_0_1/bin/zendenc_sign"<br /> outputFile="./data/license/license.zl"<br /> licenseTemplate="./data/license/license.template.zl"<br />/><br /> 8094 7660 </pre> 8095 <p>Creates a license using a license template file.</p> 8096 <p></p> 8097 8098 8099 <h2> 8100 <a name="ZipTask"></a>ZipTask 8101 </h2> 8102 <p> 8103 The <em>ZipTask</em> creates a .zip archive from a fileset or 8104 directory. 8105 </p> 8106 <h3>Examples</h3> 8107 <pre><zip destfile="phing.zip"> 7661 <p>Creates a license using a license template file.</p> 7662 <p></p> 7663 <h2> 7664 <a name="ZipTask"></a>ZipTask </h2> 7665 <p> The <em>ZipTask</em> creates a .zip archive from a fileset or directory. </p> 7666 <h3>Examples</h3> 7667 <pre><zip destfile="phing.zip"> 8108 7668 <fileset dir="."> 8109 7669 <include name="**/**" /> … … 8111 7671 </zip> 8112 7672 </pre> 8113 <p>The above example uses a fileset to determine which files to 8114 include in the archive.</p> 8115 <pre><zip destfile="phing.zip" basedir="."/></pre> 8116 <p>The second example uses the basedir attribute to include the 8117 contents of that directory (including subdirectories) in the archive.</p> 8118 <h3>Example</h3> 8119 <h3>Attributes</h3> 8120 <table> 8121 <thead> 8122 <tr> 8123 <th>Name</th> 8124 <th>Type</th> 8125 <th>Description</th> 8126 <th>Default</th> 8127 <th>Required</th> 8128 </tr> 8129 </thead> 8130 <tbody> 8131 <tr> 8132 <td>destfile</td> 8133 <td>String</td> 8134 <td>.ZIP filename</td> 8135 <td>n/a</td> 8136 <td>Yes</td> 8137 </tr> 8138 <tr> 8139 <td>basedir</td> 8140 <td>String</td> 8141 <td>Base directory to zip (if no fileset specified, entire 8142 directory contents will be included in the archive)</td> 8143 <td>none</td> 8144 <td>No</td> 8145 </tr> 8146 <tr> 8147 <td>prefix</td> 8148 <td>String</td> 8149 <td>File path prefix to use when adding files to zip</td> 8150 <td>none</td> 8151 <td>No</td> 8152 </tr> 8153 <tr> 8154 <td>includeemptydirs</td> 8155 <td>Boolean</td> 8156 <td>If set to <em>true</em>, also empty directories are copied. 8157 </td> 8158 <td>true</td> 8159 <td>No</td> 8160 </tr> 8161 </tbody> 8162 </table> 8163 <p> 8164 <b>Important note:</b> using basedir and fileset simultaneously can 8165 result in strange contents in the archive. 8166 </p> 8167 <h3>Supported Nested Tags</h3> 8168 <ul> 8169 <li>fileset</li> 8170 </ul> 8171 </body> 7673 <p>The above example uses a fileset to determine which files to include in the archive.</p> 7674 <pre><zip destfile="phing.zip" basedir="."/></pre> 7675 <p>The second example uses the basedir attribute to include the contents of that directory 7676 (including subdirectories) in the archive.</p> 7677 <h3>Example</h3> 7678 <h3>Attributes</h3> 7679 <table> 7680 <thead> 7681 <tr> 7682 <th>Name</th> 7683 <th>Type</th> 7684 <th>Description</th> 7685 <th>Default</th> 7686 <th>Required</th> 7687 </tr> 7688 </thead> 7689 <tbody> 7690 <tr> 7691 <td>destfile</td> 7692 <td>String</td> 7693 <td>.ZIP filename</td> 7694 <td>n/a</td> 7695 <td>Yes</td> 7696 </tr> 7697 <tr> 7698 <td>basedir</td> 7699 <td>String</td> 7700 <td>Base directory to zip (if no fileset specified, entire directory contents 7701 will be included in the archive)</td> 7702 <td>none</td> 7703 <td>No</td> 7704 </tr> 7705 <tr> 7706 <td>prefix</td> 7707 <td>String</td> 7708 <td>File path prefix to use when adding files to zip</td> 7709 <td>none</td> 7710 <td>No</td> 7711 </tr> 7712 <tr> 7713 <td>includeemptydirs</td> 7714 <td>Boolean</td> 7715 <td>If set to <em>true</em>, also empty directories are copied. </td> 7716 <td>true</td> 7717 <td>No</td> 7718 </tr> 7719 </tbody> 7720 </table> 7721 <p> 7722 <b>Important note:</b> using basedir and fileset simultaneously can result in strange 7723 contents in the archive. </p> 7724 <h3>Supported Nested Tags</h3> 7725 <ul> 7726 <li>fileset</li> 7727 </ul> 7728 </body> 8172 7729 </html> -
docs/phing_guide/book/chapters/appendixes/AppendixD2-CoreFilters.html
rffa0760 r7508253 879 879 </filterchain> 880 880 </pre> 881 <p> 882 This filter relies on PHP5 XSL support via <em>libxslt</em> which must be 883 available for php5. 884 Usually this means including the <em>php5_xsl</em> module when configuring PHP5. 885 In essence this uses the same core libraries as "xsltproc" processor. 886 </p> 881 887 <h3>Attributes</h3> 882 888 <table>
Note: See TracChangeset
for help on using the changeset viewer.
