source: docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html @ 98a312b

Last change on this file since 98a312b was 98a312b, checked in by Michiel Rook <mrook@…>, 3 years ago

Refs #685 - add svnlist and svnlog tasks (by Anton Stockl)

  • Property mode set to 100644
File size: 190.4 KB
Line 
1<!--
2-File         $Id$
3-License      GNU FDL (http://www.gnu.org/copyleft/fdl.html)
4-Copyright    2002, turing
5-Author       alex black, enigma@turingstudio.com
6-->
7<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
8   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9<html xmlns="http://www.w3.org/1999/xhtml">
10<head>
11<title>Phing Guide - Optional Tasks</title>
12<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
13<link rel="Stylesheet" rev="Stylesheet"
14        href="../../css/Documentation.css" type="text/css" media="All"
15        charset="iso-8859-1" />
16</head>
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>&lt;phplint&gt;</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>
41file_put_contents('/www/live/testcases/coverage.data', serialize(xdebug_get_code_coverage));
42</pre>
43        <h3>Supported Nested Tags</h3>
44        <ul>
45                <li>fileset</li>
46        </ul>
47        <h3>Example</h3>
48        <pre>
49&lt;coverage-merger&gt;
50&nbsp;&nbsp;&lt;fileset dir=&quot;/www/live/testcases&quot;&gt;
51&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.data"/&gt;
52&nbsp;&nbsp;&lt;/fileset&gt;
53&lt;/coverage-merger&gt;
54</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>
131&lt;coverage-report outfile=&quot;reports/coverage.xml&quot;&gt;
132&nbsp;&nbsp;&lt;report todir=&quot;reports/coverage&quot; styledir=&quot;/home/phing/etc&quot;/&gt;
133&lt;/coverage-report&gt;
134</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        </ul>
166        <h3>Example</h3>
167        <pre>
168&lt;coverage-setup database=&quot;./reports/coverage.db&quot;&gt;
169&nbsp;&nbsp;&lt;fileset dir=&quot;classes&quot;&gt;
170&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.php"/&gt;
171&nbsp;&nbsp;&lt;/fileset&gt;
172&lt;/coverage-setup&gt;
173&lt;phpunit codecoverage=&quot;true&quot;&gt;
174&nbsp;&nbsp;&lt;batchtest&gt;
175&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;src&quot;&gt;
176&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name=&quot;*Test.php&quot;/&gt;
177&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;
178&nbsp;&nbsp;&lt;/batchtest&gt;
179&lt;/phpunit&gt;
180</pre>
181
182        <h2>
183                <a name="CoverageThresholdTask"></a>CoverageThresholdTask
184        </h2>
185        <p>This task validates the code coverage database and will stop the
186                build cycle if any class or method or entire project's coverage is
187                lower than the specified threshold.</p>
188        <h3>Attributes</h3>
189        <table>
190                <thead>
191                        <tr>
192                                <th>Name</th>
193                                <th>Type</th>
194                                <th>Description</th>
195                                <th>Default</th>
196                                <th>Required</th>
197                        </tr>
198                </thead>
199                <tbody>
200                        <tr>
201                                <td>database</td>
202                                <td>String</td>
203                                <td>The location of the coverage database. (This is optional if
204                                        <em>CoverageSetupTask</em> has run before)</td>
205                                <td>n/a</td>
206                                <td>No</td>
207                        </tr>
208                        <tr>
209                                <td>perProject</td>
210                                <td>Integer</td>
211                                <td>The minimum code coverage for the entire project.</td>
212                                <td>25</td>
213                                <td>No</td>
214                        </tr>
215                        <tr>
216                                <td>perClass</td>
217                                <td>Integer</td>
218                                <td>The minimum code coverage for any class.</td>
219                                <td>25</td>
220                                <td>No</td>
221                        </tr>
222                        <tr>
223                                <td>perMethod</td>
224                                <td>Integer</td>
225                                <td>The minimum code coverage for any method.</td>
226                                <td>25</td>
227                                <td>No</td>
228                        </tr>
229                        <tr>
230                                <td>verbose</td>
231                                <td>Boolean</td>
232                                <td>Whether to enable detailed logging or not.</td>
233                                <td>false</td>
234                                <td>No</td>
235                        </tr>
236                </tbody>
237        </table>
238        <h3>Supported Nested Tags</h3>
239        <ul>
240                <li>classpath</li>
241        </ul>
242        <h3>Example</h3>
243        <pre>
244&lt;coverage-threshold database=&quot;./reports/coverage.db&quot;/&gt;
245</pre>
246        <p>Validates an optional code coverage database against the default
247                thresholds.</p>
248        <pre>
249&lt;coverage-threshold
250    perProject=&quot;50&quot;
251    perClass=&quot;60&quot;
252    perMethod=&quot;70&quot;/&gt;
253</pre>
254        <p>Validates the code coverage database (from CoverageSetupTask)
255                against the specified thresholds.</p>
256
257        <h2>
258                <a name="DbDeployTask"></a>DbDeployTask
259        </h2>
260        <p>
261                The <em>DbDeployTask</em> creates .sql files for making revisions to a
262                database, based on dbdeploy conventions centering around a changelog
263                table in the database. See <a
264                        href="http://dbdeploy.com/documentation/getting-started/rules-for-using-dbdeploy/">rules
265                        for using dbdeploy</a> for more information. You will need a changelog
266                table like so:
267        </p>
268        <pre>CREATE TABLE changelog (
269  change_number BIGINT NOT NULL,
270  delta_set VARCHAR(10) NOT NULL,
271  start_dt TIMESTAMP NOT NULL,
272  complete_dt TIMESTAMP NULL,
273  applied_by VARCHAR(100) NOT NULL,
274  description VARCHAR(500) NOT NULL
275)</pre>
276        <h3>Example</h3>
277        <pre>
278&lt;dbdeploy
279  url=&quot;sqlite:${project.basedir}/data/db.sqlite&quot;
280  userid=&quot;dbdeploy&quot;
281  password=&quot;dbdeploy&quot;
282  dir=&quot;${project.basedir}/data/dbdeploy/deltas&quot;
283/&gt;
284</pre>
285        <p>The above example uses a sqlite database and delta scripts
286                located in dbdeploy/deltas in the project base dir.</p>
287        <h3>Attributes</h3>
288        <table>
289                <thead>
290                        <tr>
291                                <th>Name</th>
292                                <th>Type</th>
293                                <th>Description</th>
294                                <th>Default</th>
295                                <th>Required</th>
296                        </tr>
297                </thead>
298                <tbody>
299                        <tr>
300                                <td>url</td>
301                                <td>String</td>
302                                <td>PDO connection url</td>
303                                <td>n/a</td>
304                                <td>Yes</td>
305                        </tr>
306                        <tr>
307                                <td>userid</td>
308                                <td>String</td>
309                                <td>DB userid to use for accessing the changelog table</td>
310                                <td>none</td>
311                                <td>As required by db</td>
312                        </tr>
313                        <tr>
314                                <td>password</td>
315                                <td>String</td>
316                                <td>DB password to use for accessing the changelog table</td>
317                                <td>none</td>
318                                <td>As required by db</td>
319                        </tr>
320                        <tr>
321                                <td>dir</td>
322                                <td>String</td>
323                                <td>Directory containing dbdeploy delta scripts</td>
324                                <td>none</td>
325                                <td>Yes</td>
326                        </tr>
327                        <tr>
328                                <td>outputfile</td>
329                                <td>String</td>
330                                <td>Filename in which deployment SQL will be generated</td>
331                                <td>dbdeploy_deploy.sql</td>
332                                <td>No</td>
333                        </tr>
334                        <tr>
335                                <td>undooutputfile</td>
336                                <td>String</td>
337                                <td>Filename in which undo SQL will be generated</td>
338                                <td>dbdeploy_undo.sql</td>
339                                <td>No</td>
340                        </tr>
341                        <tr>
342                                <td>deltaset</td>
343                                <td>String</td>
344                                <td>deltaset to check within db</td>
345                                <td>Main</td>
346                                <td>No</td>
347                        </tr>
348                        <tr>
349                                <td>lastchangetoapply</td>
350                                <td>Integer</td>
351                                <td>Highest-numbered delta script to apply to db</td>
352                                <td>999</td>
353                                <td>No</td>
354                        </tr>
355                </tbody>
356        </table>
357        <h2>
358                <a name="DocBloxTask"></a>DocBloxTask
359        </h2>
360        <p>
361                This task runs <a href="http://www.docblox-project.org/"
362                        target="_blank">DocBlox</a>, a PHP 5.3-compatible API documentation
363                tool.
364        </p>
365        <h3>Attributes</h3>
366        <table>
367                <thead>
368                        <tr>
369                                <th>Name</th>
370                                <th>Type</th>
371                                <th>Description</th>
372                                <th>Default</th>
373                                <th>Required</th>
374                        </tr>
375                </thead>
376                <tbody>
377                        <tr>
378                                <td>title</td>
379                                <td>String</td>
380                                <td>Title of the project.</td>
381                                <td>n/a</td>
382                                <td>No</td>
383                        </tr>
384                        <tr>
385                                <td>destdir</td>
386                                <td>String</td>
387                                <td>Destination directory for output files.</td>
388                                <td>n/a</td>
389                                <td>Yes</td>
390                        </tr>
391                        <tr>
392                                <td>quiet</td>
393                                <td>Boolean</td>
394                                <td>Suppress DocBlox chatter.</td>
395                                <td>true</td>
396                                <td>No</td>
397                        </tr>
398                </tbody>
399        </table>
400        <h3>Supported Nested Tags</h3>
401        <ul>
402                <li>fileset - Files that should be included for parsing</li>
403        </ul>
404        <h3>Examples</h3>
405        <pre>
406&lt;docblox title=&quot;API Documentation&quot;
407  destdir=&quot;apidocs&quot;
408   &lt;fileset dir=&quot;./classes&quot;&gt;
409      &lt;include name=&quot;**/*.php&quot; /&gt;
410   &lt;/fileset&gt;
411&lt;/phpdoc&gt;
412</pre>
413        <h2>
414                <a name="ExportPropertiesTask"></a>ExportPropertiesTask
415        </h2>
416        <p>Exports all defined properties to a specified file.</p>
417        <h3>Example</h3>
418        <pre>
419&lt;exportproperties targetfile="output.props" /&gt;
420</pre>
421        <h3>Attributes</h3>
422        <table>
423                <thead>
424                        <tr>
425                                <th>Name</th>
426                                <th>Type</th>
427                                <th>Description</th>
428                                <th>Default</th>
429                                <th>Required</th>
430                        </tr>
431                </thead>
432                <tbody>
433                        <tr>
434                                <td>targetfile</td>
435                                <td>String</td>
436                                <td>Target file for saved properties</td>
437                                <td>n/a</td>
438                                <td>Yes</td>
439                        </tr>
440                        <tr>
441                                <td>disallowedPropertyPrefixes</td>
442                                <td>String</td>
443                                <td>Exclude properties starting with these prefixes (separated
444                                        by <em>,</em></td>
445                                <td><em>'host.'</em>, <em>'phing.'</em>, <em>'os.'</em>, <em>'php.'</em>,
446                                        <em>'line.'</em>, <em>'env.'</em>, <em>'user.'</em></td>
447                                <td>No</td>
448                        </tr>
449                </tbody>
450        </table>
451
452
453        <h2>
454                <a name="FileHashTask"></a>FileHashTask
455        </h2>
456        <p>Calculates either MD5 or SHA1 hash value of a file and stores
457                the value as a hex string in a property.</p>
458        <h3>Example</h3>
459        <pre>
460&lt;filehash file="${builddir}/${tarball}.tar.${compression}" /&gt;
461&lt;echo "Hashvalue is; ${filehashvalue}" /&gt;
462</pre>
463        <h3>Attributes</h3>
464        <table>
465                <thead>
466                        <tr>
467                                <th>Name</th>
468                                <th>Type</th>
469                                <th>Description</th>
470                                <th>Default</th>
471                                <th>Required</th>
472                        </tr>
473                </thead>
474                <tbody>
475                        <tr>
476                                <td>file</td>
477                                <td>String</td>
478                                <td>Filename</td>
479                                <td>n/a</td>
480                                <td>Yes</td>
481                        </tr>
482                        <tr>
483                                <td>hashtype</td>
484                                <td>Integer</td>
485                                <td>Specifies what hash algorithm to use. 0=MD5, 1=SHA1</td>
486                                <td>0</td>
487                                <td>No</td>
488                        </tr>
489                        <tr>
490                                <td>propertyname</td>
491                                <td>String</td>
492                                <td>Name of property where the hash value is stored</td>
493                                <td>filehashvalue</td>
494                                <td>No</td>
495                        </tr>
496                </tbody>
497        </table>
498
499        <h2>
500                <a name="FileSizeTask"></a>FileSizeTask
501        </h2>
502        <p>Stores the size of a specified file in a property. The file size
503                is returned in bytes.</p>
504        <h3>Example</h3>
505        <pre>
506&lt;filesize file="${builddir}/${tarball}.tar.${compression}" /&gt;
507&lt;php expression="floor(${filesize}/1024)" returnProperty="ksize" /&gt;
508&lt;php expression="floor(${filesize}/1024/1024)" returnProperty="msize" /&gt;
509&lt;echo msg="Filesize is: ${ksize} kB"/&gt;
510&lt;echo msg="Filesize is: ${msize} MB"/&gt;
511</pre>
512        <h3>Attributes</h3>
513        <table>
514                <thead>
515                        <tr>
516                                <th>Name</th>
517                                <th>Type</th>
518                                <th>Description</th>
519                                <th>Default</th>
520                                <th>Required</th>
521                        </tr>
522                </thead>
523                <tbody>
524                        <tr>
525                                <td>file</td>
526                                <td>String</td>
527                                <td>Filename</td>
528                                <td>n/a</td>
529                                <td>Yes</td>
530                        </tr>
531                        <tr>
532                                <td>propertyname</td>
533                                <td>String</td>
534                                <td>Name of property where the file size is stored</td>
535                                <td>filesize</td>
536                                <td>No</td>
537                        </tr>
538                </tbody>
539        </table>
540
541
542
543        <h2>
544                <a name="FtpDeployTask"></a>FtpDeployTask
545        </h2>
546        <p>Deploys a set of files to a remote FTP server.</p>
547        <h3>Example</h3>
548        <pre>&lt;ftpdeploy
549  host="${ftp.host}"
550  port="${ftp.port}"
551  username="${ftp.username}"
552  password="${ftp.password}"
553  dir="${ftp.dir}"
554  passive=&quot;false&quot;
555  mode="${ftp.mode}"&gt;
556  &lt;fileset dir=&quot;.&quot;&gt;
557    &lt;include name=&quot;**&quot;/&gt;
558    &lt;exclude name=&quot;phing&quot;/&gt;
559    &lt;exclude name=&quot;build.xml&quot;/&gt;
560    &lt;exclude name=&quot;images/**.png&quot;/&gt;
561    &lt;exclude name=&quot;images/**.gif&quot;/&gt;
562    &lt;exclude name=&quot;images/**.jpg&quot;/&gt;
563  &lt;/fileset&gt;
564&lt;/ftpdeploy&gt;
565</pre>
566        <h3>Attributes</h3>
567        <table>
568                <thead>
569                        <tr>
570                                <th>Name</th>
571                                <th>Type</th>
572                                <th>Description</th>
573                                <th>Default</th>
574                                <th>Required</th>
575                        </tr>
576                </thead>
577                <tbody>
578                        <tr>
579                                <td>host</td>
580                                <td>String</td>
581                                <td>The hostname of the remote server.</td>
582                                <td>none</td>
583                                <td>Yes</td>
584                        </tr>
585                        <tr>
586                                <td>port</td>
587                                <td>Boolean</td>
588                                <td>The port of the remote server.</td>
589                                <td>21</td>
590                                <td>No</td>
591                        </tr>
592                        <tr>
593                                <td>username</td>
594                                <td>String</td>
595                                <td>The username to use when logging in to the remote server.</td>
596                                <td>none</td>
597                                <td>Yes</td>
598                        </tr>
599                        <tr>
600                                <td>password</td>
601                                <td>String</td>
602                                <td>The password to use when logging in to the remote server</td>
603                                <td>none</td>
604                                <td>Yes</td>
605                        </tr>
606                        <tr>
607                                <td>dir</td>
608                                <td>String</td>
609                                <td>Directory on the remote server.</td>
610                                <td>none</td>
611                                <td>No</td>
612                        </tr>
613                        <tr>
614                                <td>mode</td>
615                                <td>String</td>
616                                <td>The transfer mode to use, either <em>ascii</em> or <em>binary</em>.</td>
617                                <td>binary</td>
618                                <td>No</td>
619                        </tr>
620                        <tr>
621                                <td>clearfirst</td>
622                                <td>Boolean</td>
623                                <td>Delete all files in the remote directory before uploading</td>
624                                <td>false</td>
625                                <td>No</td>
626                        </tr>
627                        <tr>
628                                <td>passive</td>
629                                <td>Boolean</td>
630                                <td>Open connection in passive mode</td>
631                                <td>false</td>
632                                <td>No</td>
633                        </tr>
634                        <tr>
635                                <td>level</td>
636                                <td>String</td>
637                                <td>Control the level at which the task reports status
638                                        messages. One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>,
639                                        <em>debug</em>.</td>
640                                <td><em>verbose</em></td>
641                                <td>No</td>
642                        </tr>
643                </tbody>
644        </table>
645        <h3>Supported Nested Tags</h3>
646        <ul>
647                <li>fileset
648                        <p>The files to deploy</p></li>
649        </ul>
650
651        <h2>
652                <a name="GitInitTask"></a>GitInitTask
653        </h2>
654        <p>Create an empty git repository or reinitialize an existing one.</p>
655        <h3>Attributes</h3>
656        <table>
657                <thead>
658                        <tr>
659                                <th>Name</th>
660                                <th>Type</th>
661                                <th>Description</th>
662                                <th>Default</th>
663                                <th>Required</th>
664                        </tr>
665                </thead>
666                <tbody>
667                        <tr>
668                                <td>gitPath</td>
669                                <td>String</td>
670                                <td>Path to Git binary</td>
671                                <td>/usr/bin/git</td>
672                                <td>No</td>
673                        </tr>
674                        <tr>
675                                <td>repository</td>
676                                <td>String</td>
677                                <td>Path to Git repository</td>
678                                <td>n/a</td>
679                                <td>Yes</td>
680                        </tr>
681                        <tr>
682                                <td>bare</td>
683                                <td>Boolean</td>
684                                <td>Create bare repository. See --bare option of <a
685                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-init.html">git-init</a>.</td>
686                                <td>false</td>
687                                <td>No</td>
688                        </tr>
689                </tbody>
690        </table>
691        <h3>Example</h3>
692        <pre>
693&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
694&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
695
696&lt;!-- Initialize normal repository --&gt;
697&lt;gitinit repository="${repo.dir.resolved}" /&gt;
698
699&lt;!-- Initialize bare repository --&gt;
700&lt;gitinit bare="true" repository="${repo.dir.resolved}" /&gt;
701</pre>
702
703
704        <h2>
705                <a name="GitCloneTask"></a>GitCloneTask
706        </h2>
707        <p>Clone a repository into a new directory.</p>
708
709        <h3>Attributes</h3>
710        <table>
711                <thead>
712                        <tr>
713                                <th>Name</th>
714                                <th>Type</th>
715                                <th>Description</th>
716                                <th>Default</th>
717                                <th>Required</th>
718                        </tr>
719                </thead>
720                <tbody>
721                        <tr>
722                                <td>gitPath</td>
723                                <td>String</td>
724                                <td>Path to Git binary</td>
725                                <td>/usr/bin/git</td>
726                                <td>No</td>
727                        </tr>
728                        <tr>
729                                <td>repository</td>
730                                <td>String</td>
731                                <td>The (possibly remote) repository to clone from.</td>
732                                <td>n/a</td>
733                                <td>Yes</td>
734                        </tr>
735                        <tr>
736                                <td>targetPath</td>
737                                <td>String</td>
738                                <td>The name of a new directory to clone into. Cloning into an
739                                        existing directory is only allowed if the directory is empty.</td>
740                                <td>n/a</td>
741                                <td>Yes</td>
742                        </tr>
743                        <tr>
744                                <td>bare</td>
745                                <td>Boolean</td>
746                                <td>Create bare repository. See --bare option of <a
747                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html">git-clone</a>.</td>
748                                <td>false</td>
749                                <td>No</td>
750                        </tr>
751                </tbody>
752        </table>
753        <h3>Example</h3>
754        <pre>
755&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
756&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
757
758&lt;!-- Clone repository --&gt;
759&lt;gitclone
760    repository="git://github.com/path/to/repo/repo.git"
761    targetPath="${repo.dir.resolved}" /&gt;
762
763&lt;!-- Clone bare repository --&gt;
764&lt;gitclone
765    repository="git://github.com/path/to/repo/repo.git"
766    targetPath="${repo.dir.resolved}"
767    bare="true" /&gt;
768</pre>
769
770        <h2>
771                <a name="GitGcTask"></a>GitGcTask
772        </h2>
773        <p>Cleanup unnecessary files and optimize the local repository.</p>
774
775        <h3>Attributes</h3>
776        <table>
777                <thead>
778                        <tr>
779                                <th>Name</th>
780                                <th>Type</th>
781                                <th>Description</th>
782                                <th>Default</th>
783                                <th>Required</th>
784                        </tr>
785                </thead>
786                <tbody>
787                        <tr>
788                                <td>gitPath</td>
789                                <td>String</td>
790                                <td>Path to Git binary</td>
791                                <td>/usr/bin/git</td>
792                                <td>No</td>
793                        </tr>
794                        <tr>
795                                <td>repository</td>
796                                <td>String</td>
797                                <td>The repository to cleanup.</td>
798                                <td>n/a</td>
799                                <td>Yes</td>
800                        </tr>
801                        <tr>
802                                <td>aggressive</td>
803                                <td>Boolean</td>
804                                <td>This option will cause git gc to more aggressively optimize
805                                        the repository at the expense of taking much more time. See
806                                        --aggressive option of <a
807                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td>
808                                <td>false</td>
809                                <td>No</td>
810                        </tr>
811                        <tr>
812                                <td>auto</td>
813                                <td>Boolean</td>
814                                <td>With this option, git gc checks whether any housekeeping is
815                                        required; if not, it exits without performing any work. See --auto
816                                        option of <a
817                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td>
818                                <td>false</td>
819                                <td>No</td>
820                        </tr>
821                        <tr>
822                                <td>noprune</td>
823                                <td>Boolean</td>
824                                <td>Do not prune any loose objects. See --no-prune option of <a
825                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td>
826                                <td>false</td>
827                                <td>No</td>
828                        </tr>
829                        <tr>
830                                <td>prune</td>
831                                <td>string</td>
832                                <td>Prune loose objects older than date. See --prune option of
833                                        <a
834                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html">git-gc</a>.</td>
835                                <td>2.weeks.ago</td>
836                                <td>No</td>
837                        </tr>
838                </tbody>
839        </table>
840        <h3>Example</h3>
841        <pre>
842&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
843&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
844
845&lt;!-- Clone repository --&gt;
846&lt;gitclone
847    repository="git://github.com/path/to/repo/repo.git"
848    targetPath="${repo.dir.resolved}" /&gt;
849
850&lt;!-- Cleanup repository--&gt;
851&lt;gitgc
852    repository="${repo.dir.resolved}"
853    aggressive="true"
854    prune="1.week.ago" /&gt;
855</pre>
856
857        <h2>
858                <a name="GitBranchTask"></a>GitBranchTask
859        </h2>
860        <p>
861                Create, move or delete repository branches. See official <a
862                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">documentation</a>
863                (branch listing functionality is omitted in current implementation).
864        </p>
865        <h3>Attributes</h3>
866        <table>
867                <thead>
868                        <tr>
869                                <th>Name</th>
870                                <th>Type</th>
871                                <th>Description</th>
872                                <th>Default</th>
873                                <th>Required</th>
874                        </tr>
875                </thead>
876                <tbody>
877                        <tr>
878                                <td>gitPath</td>
879                                <td>String</td>
880                                <td>Path to Git binary</td>
881                                <td>/usr/bin/git</td>
882                                <td>No</td>
883                        </tr>
884                        <tr>
885                                <td>repository</td>
886                                <td>String</td>
887                                <td>Path to Git repository</td>
888                                <td>n/a</td>
889                                <td>Yes</td>
890                        </tr>
891                        <tr>
892                                <td>branchname</td>
893                                <td>String</td>
894                                <td>The name of the branch to create or delete.</td>
895                                <td>n/a</td>
896                                <td>Yes</td>
897                        </tr>
898                        <tr>
899                                <td>newbranch</td>
900                                <td>String</td>
901                                <td>The new name for an existing branch.</td>
902                                <td>n/a</td>
903                                <td>Yes, if branch move invoked</td>
904                        </tr>
905                        <tr>
906                                <td>startpoint</td>
907                                <td>String</td>
908                                <td>The new branch head will point to this commit. It may be
909                                        given as a branch name, a commit-id, or a tag. If this option is
910                                        omitted, the current HEAD will be used instead. See
911                                        &lt;start-point&gt; argument of <a
912                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td>
913                                <td></td>
914                                <td>No</td>
915                        </tr>
916                        <tr>
917                                <td>setupstream</td>
918                                <td>String</td>
919                                <td>If specified branch does not exist yet or if --force has
920                                        been given, acts exactly like --track. Otherwise sets up
921                                        configuration like --track would when creating the branch, except
922                                        that where branch points to is not changed. See --set-upstream
923                                        option of <a
924                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td>
925                                <td></td>
926                                <td>No</td>
927                        </tr>
928                        <tr>
929                                <td>track</td>
930                                <td>Boolean</td>
931                                <td>See --track option of <a
932                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td>
933                                <td>false</td>
934                                <td>No</td>
935                        </tr>
936                        <tr>
937                                <td>notrack</td>
938                                <td>Boolean</td>
939                                <td>See --no-track option of <a
940                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a>.</td>
941                                <td>false</td>
942                                <td>No</td>
943                        </tr>
944                        <tr>
945                                <td>force</td>
946                                <td>Boolean</td>
947                                <td>Reset &lt;branchname&gt; to &lt;startpoint&gt; if
948                                        &lt;branchname&gt; exists already. Without -f git branch refuses to
949                                        change an existing branch.</td>
950                                <td>false</td>
951                                <td>No</td>
952                        </tr>
953                        <tr>
954                                <td>move</td>
955                                <td>Boolean</td>
956                                <td>Move/rename a branch and the corresponding reflog.</td>
957                                <td>false</td>
958                                <td>No</td>
959                        </tr>
960                        <tr>
961                                <td>forcemove</td>
962                                <td>Boolean</td>
963                                <td>Move/rename a branch even if the new branch name already
964                                        exists.</td>
965                                <td>false</td>
966                                <td>No</td>
967                        </tr>
968                        <tr>
969                                <td>delete</td>
970                                <td>Boolean</td>
971                                <td>Delete a branch. The branch must be fully merged in its
972                                        upstream branch, or in HEAD if no upstream was set with --track or
973                                        --set-upstream.</td>
974                                <td>false</td>
975                                <td>No</td>
976                        </tr>
977                        <tr>
978                                <td>forcedelete</td>
979                                <td>Boolean</td>
980                                <td>Delete a branch irrespective of its merged status.</td>
981                                <td>false</td>
982                                <td>No</td>
983                        </tr>
984                </tbody>
985        </table>
986        <h3>Example</h3>
987        <pre>
988&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
989&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
990
991&lt;!-- Initialize normal repository --&gt;
992&lt;gitinit repository="${repo.dir.resolved}" /&gt;
993
994&lt;!-- Create branch "sample-branch" tracking current HEAD --&gt;
995&lt;gitbranch
996    repository="${repo.dir.resolved}"
997    branchname="sample-branch" /&gt;
998
999&lt;!--
1000Create branch "sample-branch" tracking origin/master
1001Note that you can omit both startpoint and track attributes in this case
1002--&gt;
1003&lt;gitbranch
1004    repository="${repo.dir.resolved}"
1005    branchname="sample-branch"
1006    startpoint="origin/master"
1007    track="true" /&gt;
1008
1009&lt;!-- Delete fully merged branch "sample-branch" --&gt;
1010&lt;gitbranch
1011    repository="${repo.dir.resolved}"
1012    branchname="sample-branch"
1013    delete="true" /&gt;
1014
1015&lt;!-- Force delete even unmerged branch "sample-branch" --&gt;
1016&lt;gitbranch
1017    repository="${repo.dir.resolved}"
1018    branchname="sample-branch"
1019    forcedelete="true" /&gt;
1020
1021&lt;!-- Renabe "branch1" to "branch2" --&gt;
1022&lt;gitbranch
1023    repository="${repo.dir.resolved}"
1024    branchname="branch1"
1025    newbranch="branch2"
1026    move="true" /&gt;
1027
1028</pre>
1029
1030        <h2>
1031                <a name="GitFetchTask"></a>GitFetchTask
1032        </h2>
1033        <p>
1034                Download objects and refs from another repository. See official <a
1035                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">documentation</a>.
1036        </p>
1037        <h3>Attributes</h3>
1038        <table>
1039                <thead>
1040                        <tr>
1041                                <th>Name</th>
1042                                <th>Type</th>
1043                                <th>Description</th>
1044                                <th>Default</th>
1045                                <th>Required</th>
1046                        </tr>
1047                </thead>
1048                <tbody>
1049                        <tr>
1050                                <td>gitPath</td>
1051                                <td>String</td>
1052                                <td>Path to Git binary</td>
1053                                <td>/usr/bin/git</td>
1054                                <td>No</td>
1055                        </tr>
1056                        <tr>
1057                                <td>repository</td>
1058                                <td>String</td>
1059                                <td>Path to Git repository</td>
1060                                <td>n/a</td>
1061                                <td>Yes</td>
1062                        </tr>
1063                        <tr>
1064                                <td>source</td>
1065                                <td>String</td>
1066                                <td>The "remote" repository that is the source of a fetch or
1067                                        pull operation. See &lt;repository&gt; in <a
1068                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1069                                <td>origin</td>
1070                                <td>No</td>
1071                        </tr>
1072                        <tr>
1073                                <td>refspec</td>
1074                                <td>String</td>
1075                                <td>See &lt;refspec&gt; in <a
1076                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1077                                <td></td>
1078                                <td>No</td>
1079                        </tr>
1080                        <tr>
1081                                <td>group</td>
1082                                <td>String</td>
1083                                <td>A name referring to a list of repositories as the value of
1084                                        remotes.&lt;group&gt; in the configuration file. See &lt;group&gt;
1085                                        in <a
1086                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1087                                <td></td>
1088                                <td>No</td>
1089                        </tr>
1090                        <tr>
1091                                <td>quiet</td>
1092                                <td>Boolean</td>
1093                                <td>Silence any internally used git commands. Progress is not
1094                                        reported to the standard error stream. See --quiet in <a
1095                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1096                                <td>false</td>
1097                                <td>No</td>
1098                        </tr>
1099                        <tr>
1100                                <td>all</td>
1101                                <td>Boolean</td>
1102                                <td>Fetch all remotes. See --all in <a
1103                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1104                                <td>false</td>
1105                                <td>No</td>
1106                        </tr>
1107                        <tr>
1108                                <td>keep</td>
1109                                <td>Boolean</td>
1110                                <td>Keep downloaded pack. See --keep in <a
1111                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1112                                <td>false</td>
1113                                <td>No</td>
1114                        </tr>
1115                        <tr>
1116                                <td>prune</td>
1117                                <td>Boolean</td>
1118                                <td>After fetching, remove any remote tracking branches which
1119                                        no longer exist on the remote. See --prune in <a
1120                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1121                                <td>false</td>
1122                                <td>No</td>
1123                        </tr>
1124                        <tr>
1125                                <td>tags</td>
1126                                <td>Boolean</td>
1127                                <td>See --tags in <a
1128                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1129                                <td>false</td>
1130                                <td>No</td>
1131                        </tr>
1132                        <tr>
1133                                <td>notags</td>
1134                                <td>Boolean</td>
1135                                <td>See --no-tags in <a
1136                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1137                                <td>false</td>
1138                                <td>No</td>
1139                        </tr>
1140                        <tr>
1141                                <td>force</td>
1142                                <td>Boolean</td>
1143                                <td>When git fetch is used with &lt;rbranch&gt;:&lt;lbranch&gt;
1144                                        refspec, it refuses to update the local branch &lt;lbranch&gt;
1145                                        unless the remote branch &lt;rbranch&gt; it fetches is a descendant
1146                                        of &lt;lbranch&gt;. This option overrides that check. See --force
1147                                        in <a
1148                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a>.</td>
1149                                <td>false</td>
1150                                <td>No</td>
1151                        </tr>
1152                </tbody>
1153        </table>
1154        <h3>Example</h3>
1155        <pre>
1156&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1157&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1158
1159&lt;!-- Initialize normal repository --&gt;
1160&lt;gitinit repository="${repo.dir.resolved}" /&gt;
1161
1162&lt;!-- Fetch objects from all remotes --&gt;
1163&lt;gitfetch
1164    repository="${repo.dir.resolved}" all="true" /&gt;
1165
1166&lt;!-- Fetch from origin/master to "refspec-branch" local branch --&gt;
1167&lt;gitfetch
1168    repository="${repo.dir.resolved}"
1169    source="origin"
1170    refspec="master:refspec-branch"
1171    quiet="true" /&gt;
1172</pre>
1173
1174        <h2>
1175                <a name="GitCheckoutTask"></a>GitCheckoutTask
1176        </h2>
1177        <p>
1178                Checkout a branch or paths to the working tree. See official <a
1179                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">documentation</a>.
1180        </p>
1181        <h3>Attributes</h3>
1182        <table>
1183                <thead>
1184                        <tr>
1185                                <th>Name</th>
1186                                <th>Type</th>
1187                                <th>Description</th>
1188                                <th>Default</th>
1189                                <th>Required</th>
1190                        </tr>
1191                </thead>
1192                <tbody>
1193                        <tr>
1194                                <td>gitPath</td>
1195                                <td>String</td>
1196                                <td>Path to Git binary</td>
1197                                <td>/usr/bin/git</td>
1198                                <td>No</td>
1199                        </tr>
1200                        <tr>
1201                                <td>repository</td>
1202                                <td>String</td>
1203                                <td>Path to Git repository</td>
1204                                <td>n/a</td>
1205                                <td>Yes</td>
1206                        </tr>
1207                        <tr>
1208                                <td>branchname</td>
1209                                <td>String</td>
1210                                <td>Branch to checkout. See &lt;branch&gt; in <a
1211                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1212                                <td>origin</td>
1213                                <td>No</td>
1214                        </tr>
1215                        <tr>
1216                                <td>startpoint</td>
1217                                <td>String</td>
1218                                <td>The name of a commit at which to start the new branch;
1219                                        Defaults to HEAD. See &lt;start_point&gt; in <a
1220                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1221                                <td></td>
1222                                <td>No</td>
1223                        </tr>
1224                        <tr>
1225                                <td>create</td>
1226                                <td>Boolean</td>
1227                                <td>Create a new branch named &lt;branchname&gt; and start it
1228                                        at &lt;startpoint&gt;</td>
1229                                <td>false</td>
1230                                <td>No</td>
1231                        </tr>
1232                        <tr>
1233                                <td>forcecreate</td>
1234                                <td>Boolean</td>
1235                                <td>Creates the branch &lt;branchname&gt; and start it at
1236                                        &lt;startpoint&gt;; if it already exists, then reset it to
1237                                        &lt;startpoint&gt;. This is equivalent to running "git branch" with
1238                                        "-f".</td>
1239                                <td>false</td>
1240                                <td>No</td>
1241                        </tr>
1242                        <tr>
1243                                <td>merge</td>
1244                                <td>Boolean</td>
1245                                <td>See --merge in <a
1246                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1247                                <td>false</td>
1248                                <td>No</td>
1249                        </tr>
1250                        <tr>
1251                                <td>track</td>
1252                                <td>Boolean</td>
1253                                <td>See --track in <a
1254                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1255                                <td>false</td>
1256                                <td>No</td>
1257                        </tr>
1258                        <tr>
1259                                <td>notrack</td>
1260                                <td>Boolean</td>
1261                                <td>See --no-track in <a
1262                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1263                                <td>false</td>
1264                                <td>No</td>
1265                        </tr>
1266                        <tr>
1267                                <td>quiet</td>
1268                                <td>Boolean</td>
1269                                <td>Quiet, suppress feedback messages. See --quiet in <a
1270                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1271                                <td>false</td>
1272                                <td>No</td>
1273                        </tr>
1274                        <tr>
1275                                <td>force</td>
1276                                <td>Boolean</td>
1277                                <td>When switching branches, proceed even if the index or the
1278                                        working tree differs from HEAD. This is used to throw away local
1279                                        changes. See --force in <a
1280                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a>.</td>
1281                                <td>false</td>
1282                                <td>No</td>
1283                        </tr>
1284                </tbody>
1285        </table>
1286        <h3>Example</h3>
1287        <pre>
1288&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1289&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1290
1291&lt;!-- clone repository --&gt;
1292&lt;gitclone
1293    repository="git://github.com/path/to/repo/repo.git"
1294    targetPath="${repo.dir.resolved}" /&gt;
1295
1296&lt;!-- create and switch to "mybranch" branch --&gt;
1297&lt;gitcheckout
1298    repository="${repo.dir.resolved}"
1299    branchname="mybranch" quiet="true" create="true" /&gt;
1300
1301&lt;!-- get back to "master" branch --&gt;
1302&lt;gitcheckout
1303    repository="${repo.dir.resolved}"
1304    branchname="master" quiet="true" /&gt;
1305
1306&lt;!-- create (force) already created branch --&gt;
1307&lt;gitcheckout
1308    repository="${repo.dir.resolved}"
1309    branchname="mybranch" quiet="true"
1310    forceCreate="true" /&gt;
1311</pre>
1312
1313        <h2>
1314                <a name="GitMergeTask"></a>GitMergeTask
1315        </h2>
1316        <p>
1317                Join two or more development histories together. See official <a
1318                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">documentation</a>.
1319        </p>
1320        <h3>Attributes</h3>
1321        <table>
1322                <thead>
1323                        <tr>
1324                                <th>Name</th>
1325                                <th>Type</th>
1326                                <th>Description</th>
1327                                <th>Default</th>
1328                                <th>Required</th>
1329                        </tr>
1330                </thead>
1331                <tbody>
1332                        <tr>
1333                                <td>gitPath</td>
1334                                <td>String</td>
1335                                <td>Path to Git binary</td>
1336                                <td>/usr/bin/git</td>
1337                                <td>No</td>
1338                        </tr>
1339                        <tr>
1340                                <td>repository</td>
1341                                <td>String</td>
1342                                <td>Path to Git repository</td>
1343                                <td>n/a</td>
1344                                <td>Yes</td>
1345                        </tr>
1346                        <tr>
1347                                <td>remote</td>
1348                                <td>String</td>
1349                                <td>Space separated list of branches to merge into current
1350                                        HEAD. See &lt;commit&gt; in <a
1351                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1352                                <td>n/a</td>
1353                                <td>No</td>
1354                        </tr>
1355                        <tr>
1356                                <td>message</td>
1357                                <td>String</td>
1358                                <td>Commit message to be used for the merge commit (in case one
1359                                        is created). See &lt;msg&gt; in <a
1360                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1361                                <td>n/a</td>
1362                                <td>No</td>
1363                        </tr>
1364                        <tr>
1365                                <td>fastForwardCommit</td>
1366                                <td>Boolean</td>
1367                                <td>If set false (default), will not generate a merge commit if
1368                                        the merge resolved as a fast-forward, only update the branch
1369                                        pointer.<br /> If set true, will generate a merge commit even if
1370                                        the merge resolved as a fast-forward. See --ff/--no-ff options in <a
1371                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1372                                <td>False</td>
1373                                <td>No</td>
1374                        </tr>
1375                        <tr>
1376                                <td>strategy</td>
1377                                <td>String</td>
1378                                <td>Merge strategy. One of "resolve", "recursive", "octopus",
1379                                        "ours", or "subtree". See &lt;strategy&gt; in <a
1380                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1381                                <td>n/a</td>
1382                                <td>No</td>
1383                        </tr>
1384                        <tr>
1385                                <td>strategyOption</td>
1386                                <td>String</td>
1387                                <td>Pass merge strategy specific option through to the merge
1388                                        strategy. See &lt;strategy-option&gt; in <a
1389                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1390                                <td>n/a</td>
1391                                <td>No</td>
1392                        </tr>
1393                        <tr>
1394                                <td>commit</td>
1395                                <td>Boolean</td>
1396                                <td>See --commit in <a
1397                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1398                                <td>false</td>
1399                                <td>No</td>
1400                        </tr>
1401                        <tr>
1402                                <td>nocommit</td>
1403                                <td>Boolean</td>
1404                                <td>See --no-commit in <a
1405                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1406                                <td>false</td>
1407                                <td>No</td>
1408                        </tr>
1409                        <tr>
1410                                <td>quiet</td>
1411                                <td>Boolean</td>
1412                                <td>Quiet, suppress feedback messages. See --quiet in <a
1413                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a>.</td>
1414                                <td>false</td>
1415                                <td>No</td>
1416                        </tr>
1417                </tbody>
1418        </table>
1419        <h3>Example</h3>
1420        <pre>
1421&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1422&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1423
1424&lt;!-- clone repository --&gt;
1425&lt;gitclone
1426    repository="git://github.com/path/to/repo/repo.git"
1427    targetPath="${repo.dir.resolved}" /&gt;
1428
1429&lt;!-- create couple of test branches --&gt;
1430&lt;gitbranch
1431    repository="${repo.dir.resolved}"
1432    branchname="merge-test-1" startpoint="origin/master" /&gt;
1433&lt;gitbranch
1434    repository="${repo.dir.resolved}"
1435    branchname="merge-test-2" startpoint="origin/master" /&gt;
1436
1437&lt;!-- Merge those branches back into master --&gt;
1438&lt;gitmerge
1439    repository="${repo.dir.resolved}"
1440    remote="merge-test-1 merge-test-2"
1441    message="merging repos" commit="true" /&gt;
1442</pre>
1443
1444        <h2>
1445                <a name="GitPullTask"></a>GitPullTask
1446        </h2>
1447        <p>
1448                Fetch from and merge with another repository or a local branch. See
1449                official <a
1450                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">documentation</a>.
1451        </p>
1452        <h3>Attributes</h3>
1453        <table>
1454                <thead>
1455                        <tr>
1456                                <th>Name</th>
1457                                <th>Type</th>
1458                                <th>Description</th>
1459                                <th>Default</th>
1460                                <th>Required</th>
1461                        </tr>
1462                </thead>
1463                <tbody>
1464                        <tr>
1465                                <td>gitPath</td>
1466                                <td>String</td>
1467                                <td>Path to Git binary</td>
1468                                <td>/usr/bin/git</td>
1469                                <td>No</td>
1470                        </tr>
1471                        <tr>
1472                                <td>repository</td>
1473                                <td>String</td>
1474                                <td>Path to Git repository</td>
1475                                <td>n/a</td>
1476                                <td>Yes</td>
1477                        </tr>
1478                        <tr>
1479                                <td>all</td>
1480                                <td>Boolean</td>
1481                                <td>Fetch all remotes</td>
1482                                <td>false</td>
1483                                <td>No</td>
1484                        </tr>
1485                        <tr>
1486                                <td>source</td>
1487                                <td>String</td>
1488                                <td>The "remote" repository that is the source of a fetch or
1489                                        pull operation. See &lt;repository&gt; in <a
1490                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1491                                <td>origin</td>
1492                                <td>Yes, if allRemotes set to false</td>
1493                        </tr>
1494                        <tr>
1495                                <td>refspec</td>
1496                                <td>String</td>
1497                                <td>See &lt;refspec&gt; in <a
1498                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1499                                <td>n/a</td>
1500                                <td>No</td>
1501                        </tr>
1502                        <tr>
1503                                <td>strategy</td>
1504                                <td>String</td>
1505                                <td>Merge strategy. One of "resolve", "recursive", "octopus",
1506                                        "ours", or "subtree". See &lt;strategy&gt; in <a
1507                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1508                                <td>n/a</td>
1509                                <td>No</td>
1510                        </tr>
1511                        <tr>
1512                                <td>strategyOption</td>
1513                                <td>String</td>
1514                                <td>Pass merge strategy specific option through to the merge
1515                                        strategy. See &lt;strategy-option&gt; in <a
1516                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1517                                <td>n/a</td>
1518                                <td>No</td>
1519                        </tr>
1520                        <tr>
1521                                <td>rebase</td>
1522                                <td>Boolean</td>
1523                                <td>See --rebase in <a
1524                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1525                                <td>false</td>
1526                                <td>No</td>
1527                        </tr>
1528                        <tr>
1529                                <td>norebase</td>
1530                                <td>Boolean</td>
1531                                <td>See --no-rebase in <a
1532                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1533                                <td>false</td>
1534                                <td>No</td>
1535                        </tr>
1536                        <tr>
1537                                <td>tags</td>
1538                                <td>Boolean</td>
1539                                <td>Enable tag references following. See --tags in <a
1540                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1541                                <td>false</td>
1542                                <td>No</td>
1543                        </tr>
1544                        <tr>
1545                                <td>notags</td>
1546                                <td>Boolean</td>
1547                                <td>Disable tag references following. See --no-tags in <a
1548                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1549                                <td>false</td>
1550                                <td>No</td>
1551                        </tr>
1552                        <tr>
1553                                <td>keepFiles</td>
1554                                <td>Boolean</td>
1555                                <td>See --keep in <a
1556                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1557                                <td>false</td>
1558                                <td>No</td>
1559                        </tr>
1560                        <tr>
1561                                <td>append</td>
1562                                <td>Boolean</td>
1563                                <td>See --append in <a
1564                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1565                                <td>false</td>
1566                                <td>No</td>
1567                        </tr>
1568                        <tr>
1569                                <td>quiet</td>
1570                                <td>Boolean</td>
1571                                <td>Quiet, suppress feedback messages. See --quiet in <a
1572                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1573                                <td>false</td>
1574                                <td>No</td>
1575                        </tr>
1576                        <tr>
1577                                <td>force</td>
1578                                <td>Boolean</td>
1579                                <td>Force update. See --force in <a
1580                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a>.</td>
1581                                <td>false</td>
1582                                <td>No</td>
1583                        </tr>
1584                </tbody>
1585        </table>
1586        <h3>Example</h3>
1587        <pre>
1588&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1589&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1590
1591&lt;!-- clone repository --&gt;
1592&lt;gitclone
1593    repository="git://github.com/path/to/repo/repo.git"
1594    targetPath="${repo.dir.resolved}" /&gt;
1595
1596&lt;!-- pull from all remotes --&gt;
1597&lt;gitpull
1598    repository="${repo.dir.resolved}" all="true" /&gt;
1599
1600&lt;!-- pull remote origin/foobranch and rebase when merging --&gt;
1601&lt;gitpull
1602    repository="${repo.dir.resolved}"
1603    source="origin" refspec="foobranch"
1604    strategy="recursive" keep="true"
1605    force="true" quiet="true" rebase="true" /&gt;
1606</pre>
1607
1608
1609        <h2>
1610                <a name="GitPushTask"></a>GitPushTask
1611        </h2>
1612        <p>
1613                Update remote refs along with associated objects. See official <a
1614                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">documentation</a>.
1615        </p>
1616        <h3>Attributes</h3>
1617        <table>
1618                <thead>
1619                        <tr>
1620                                <th>Name</th>
1621                                <th>Type</th>
1622                                <th>Description</th>
1623                                <th>Default</th>
1624                                <th>Required</th>
1625                        </tr>
1626                </thead>
1627                <tbody>
1628                        <tr>
1629                                <td>gitPath</td>
1630                                <td>String</td>
1631                                <td>Path to Git binary</td>
1632                                <td>/usr/bin/git</td>
1633                                <td>No</td>
1634                        </tr>
1635                        <tr>
1636                                <td>repository</td>
1637                                <td>String</td>
1638                                <td>Path to Git repository</td>
1639                                <td>n/a</td>
1640                                <td>Yes</td>
1641                        </tr>
1642                        <tr>
1643                                <td>all</td>
1644                                <td>Boolean</td>
1645                                <td>Push all references</td>
1646                                <td>false</td>
1647                                <td>No</td>
1648                        </tr>
1649                        <tr>
1650                                <td>destination</td>
1651                                <td>String</td>
1652                                <td>The "remote" repository that is destination of a push
1653                                        operation. See &lt;repository&gt; in <a
1654                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1655                                <td>origin</td>
1656                                <td>Yes, if allRemotes set to false</td>
1657                        </tr>
1658                        <tr>
1659                                <td>refspec</td>
1660                                <td>String</td>
1661                                <td>See &lt;refspec&gt; in <a
1662                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1663                                <td>n/a</td>
1664                                <td>No</td>
1665                        </tr>
1666                        <tr>
1667                                <td>mirror</td>
1668                                <td>Boolean</td>
1669                                <td>See --mirror in <a
1670                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1671                                <td>false</td>
1672                                <td>No</td>
1673                        </tr>
1674                        <tr>
1675                                <td>delete</td>
1676                                <td>Boolean</td>
1677                                <td>Delete "remote" reference. Same as prefixing the refspec
1678                                        with colon. See --delete in <a
1679                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1680                                <td>false</td>
1681                                <td>No</td>
1682                        </tr>
1683                        <tr>
1684                                <td>tags</td>
1685                                <td>Boolean</td>
1686                                <td>Push all references under refs/tags. See --tags in <a
1687                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1688                                <td>false</td>
1689                                <td>No</td>
1690                        </tr>
1691                        <tr>
1692                                <td>quiet</td>
1693                                <td>Boolean</td>
1694                                <td>Quiet, suppress feedback messages. See --quiet in <a
1695                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1696                                <td>false</td>
1697                                <td>No</td>
1698                        </tr>
1699                        <tr>
1700                                <td>force</td>
1701                                <td>Boolean</td>
1702                                <td>Force update. See --force in <a
1703                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a>.</td>
1704                                <td>false</td>
1705                                <td>No</td>
1706                        </tr>
1707                </tbody>
1708        </table>
1709        <h3>Example</h3>
1710        <pre>
1711&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1712&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1713
1714&lt;!-- clone repository --&gt;
1715&lt;gitclone
1716    repository="git://github.com/path/to/repo/repo.git"
1717    targetPath="${repo.dir.resolved}" /&gt;
1718
1719&lt;!-- push branch "master" into "foobranch" on "origin" remote --&gt;
1720&lt;gitpush
1721    repository="${repo.dir.resolved}"
1722    refspec="master:foobranch" tags="true" /&gt;
1723
1724&lt;!-- create new branch "newbranch" on "origin" remote --&gt;
1725&lt;gitpush
1726    repository="${repo.dir.resolved}"
1727    refspec="master:newbranch" quiet="true" /&gt;
1728
1729&lt;!-- delete "newbranch" branch from "origin" remote --&gt;
1730&lt;gitpush
1731    repository="${repo.dir.resolved}"
1732    delete="true"
1733    refspec="newbranch" quiet="true" /&gt;
1734</pre>
1735
1736        <h2>
1737                <a name="GitTagTask"></a>GitTagTask
1738        </h2>
1739        <p>
1740                Create, list, delete or verify a tag object signed with GPG. See
1741                official <a
1742                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">documentation</a>.
1743        </p>
1744        <h3>Attributes</h3>
1745        <table>
1746                <thead>
1747                        <tr>
1748                                <th>Name</th>
1749                                <th>Type</th>
1750                                <th>Description</th>
1751                                <th>Default</th>
1752                                <th>Required</th>
1753                        </tr>
1754                </thead>
1755                <tbody>
1756                        <tr>
1757                                <td>gitPath</td>
1758                                <td>String</td>
1759                                <td>Path to Git binary</td>
1760                                <td>/usr/bin/git</td>
1761                                <td>No</td>
1762                        </tr>
1763                        <tr>
1764                                <td>repository</td>
1765                                <td>String</td>
1766                                <td>Path to Git repository</td>
1767                                <td>n/a</td>
1768                                <td>Yes</td>
1769                        </tr>
1770                        <tr>
1771                                <td>message</td>
1772                                <td>String</td>
1773                                <td>Use given tag message. See -m of <a
1774                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>
1775                                </td>
1776                                <td>n/a</td>
1777                                <td>No</td>
1778                        </tr>
1779                        <tr>
1780                                <td>name</td>
1781                                <td>String</td>
1782                                <td>Tag name</td>
1783                                <td>n/a</td>
1784                                <td>Yes</td>
1785                        </tr>
1786                        <tr>
1787                                <td>commit</td>
1788                                <td>String</td>
1789                                <td>&lt;commit&gt; argument to git-tag</td>
1790                                <td>n/a</td>
1791                                <td>No</td>
1792                        </tr>
1793                        <tr>
1794                                <td>object</td>
1795                                <td>String</td>
1796                                <td>&lt;object&gt; argument to git-tag</td>
1797                                <td>n/a</td>
1798                                <td>No</td>
1799                        </tr>
1800                        <tr>
1801                                <td>pattern</td>
1802                                <td>String</td>
1803                                <td>&lt;pattern&gt; argument to git-tag</td>
1804                                <td>n/a</td>
1805                                <td>No</td>
1806                        </tr>
1807                        <tr>
1808                                <td>outputProperty</td>
1809                                <td>String</td>
1810                                <td>Property name to set with output value from git-tag</td>
1811                                <td>n/a</td>
1812                                <td>No</td>
1813                        </tr>
1814                        <tr>
1815                                <td>file</td>
1816                                <td>String</td>
1817                                <td>Take tag message from given file. See -F of <a
1818                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>
1819                                </td>
1820                                <td>n/a</td>
1821                                <td>No</td>
1822                        </tr>
1823                        <tr>
1824                                <td>annotate</td>
1825                                <td>Boolean</td>
1826                                <td>Make unsigned, annotated tag object. See -a of <a
1827                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>
1828                                </td>
1829                                <td>false</td>
1830                                <td>No</td>
1831                        </tr>
1832                        <tr>
1833                                <td>force</td>
1834                                <td>Boolean</td>
1835                                <td>Replace existing tag with given name. See -f of <a
1836                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>
1837                                </td>
1838                                <td>false</td>
1839                                <td>No</td>
1840                        </tr>
1841                        <tr>
1842                                <td>delete</td>
1843                                <td>Boolean</td>
1844                                <td>Delete existing tags with given names. See -d of <a
1845                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>
1846                                </td>
1847                                <td>false</td>
1848                                <td>No</td>
1849                        </tr>
1850                        <tr>
1851                                <td>list</td>
1852                                <td>Boolean</td>
1853                                <td>List tags with names matching given pattern. See -l of <a
1854                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>
1855                                </td>
1856                                <td>false</td>
1857                                <td>No</td>
1858                        </tr>
1859                        <tr>
1860                                <td>num</td>
1861                                <td>Integer</td>
1862                                <td>Specifies how many lines from the annotation, if any, are
1863                                        printed when using -l. See -n of <a
1864                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">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
1873                                        of <a
1874                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">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">git-tag</a>
1884                                </td>
1885                                <td>false</td>
1886                                <td>No</td>
1887                        </tr>
1888                        <tr>
1889                                <td>keySign</td>
1890                                <td>String</td>
1891                                <td>Make GPG-signed tag, using given key. See -u of git-tag of
1892                                        <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>verify</td>
1900                                <td>Boolean</td>
1901                                <td>Verify GPG signature of given tag names. See -v 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                </tbody>
1908        </table>
1909        <h3>Example</h3>
1910        <pre>
1911&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1912&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1913
1914&lt;!-- clone repository --&gt;
1915&lt;gitclone
1916    repository="git://github.com/path/to/repo/repo.git"
1917    targetPath="${repo.dir.resolved}" /&gt;
1918
1919&lt;gittag repository="${repo.dir.resolved}" name="ver1.0" /&gt;
1920&lt;!-- Force duplicate tag creation --&gt;
1921&lt;gittag
1922    repository="${repo.dir.resolved}"
1923    name="ver1.0" force="true"/&gt;
1924&lt;!-- Create tag with annotation and message --&gt;
1925&lt;gittag
1926    repository="${repo.dir.resolved}"
1927    name="ver1.0"
1928    annotate="true" message="Version 1.0 tag"/&gt;
1929&lt;!-- Delete tag --&gt;
1930&lt;gittag
1931    repository="${repo.dir.resolved}"
1932        name="ver2.0" delete="true" /&gt;
1933&lt;!-- List tags matching to pattern "marked" into "tags" variable --&gt;
1934&lt;gittag repository="${repo.dir.resolved}"
1935    list="true"
1936    outputProperty="tags"
1937    pattern="marked" /&gt;
1938</pre>
1939
1940        <h2>
1941                <a name="GitLogTask"></a>GitLogTask
1942        </h2>
1943        <p>
1944                Show commit logs. See official <a
1945                        href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html">documentation</a>.
1946        </p>
1947        <h3>Attributes</h3>
1948        <table>
1949                <thead>
1950                        <tr>
1951                                <th>Name</th>
1952                                <th>Type</th>
1953                                <th>Description</th>
1954                                <th>Default</th>
1955                                <th>Required</th>
1956                        </tr>
1957                </thead>
1958                <tbody>
1959                        <tr>
1960                                <td>gitPath</td>
1961                                <td>String</td>
1962                                <td>Path to Git binary</td>
1963                                <td>/usr/bin/git</td>
1964                                <td>No</td>
1965                        </tr>
1966                        <tr>
1967                                <td>repository</td>
1968                                <td>String</td>
1969                                <td>Path to Git repository</td>
1970                                <td>n/a</td>
1971                                <td>Yes</td>
1972                        </tr>
1973                        <tr>
1974                                <td>paths</td>
1975                                <td>String</td>
1976                                <td>&lt;path&gt; arguments to git-log. Accepts one or more
1977                                        paths delimited by PATH_SEPARATOR</td>
1978                                <td>n/a</td>
1979                                <td>No</td>
1980                        </tr>
1981                        <tr>
1982                                <td>outputProperty</td>
1983                                <td>String</td>
1984                                <td>Property name to set with output value from git-log</td>
1985                                <td>n/a</td>
1986                                <td>No</td>
1987                        </tr>
1988                        <tr>
1989                                <td>format</td>
1990                                <td>String</td>
1991                                <td>Commit format. See --format of git-log. Can be one of <i>oneline</i>,
1992                                        <i>short</i>, <i>medium</i>, <i>full</i>, <i>fuller</i>, <i>email</i>,
1993                                        <i>raw</i> and <i>format:&lt;string&gt;</i></td>
1994                                <td>medium</td>
1995                                <td>No</td>
1996                        </tr>
1997                        <tr>
1998                                <td>date</td>
1999                                <td>String</td>
2000                                <td>Date format. See --date of git-log.</td>
2001                                <td>n/a</td>
2002                                <td>No</td>
2003                        </tr>
2004                        <tr>
2005                                <td>since</td>
2006                                <td>String</td>
2007                                <td>&lt;since&gt; argument to git-log.</td>
2008                                <td>n/a</td>
2009                                <td>No</td>
2010                        </tr>
2011                        <tr>
2012                                <td>until</td>
2013                                <td>String</td>
2014                                <td>&lt;until&gt; argument to git-log.</td>
2015                                <td>HEAD</td>
2016                                <td>No</td>
2017                        </tr>
2018                        <tr>
2019                                <td>stat</td>
2020                                <td>String</td>
2021                                <td>Generate a diffstat. See --stat of git-log</td>
2022                                <td>n/a</td>
2023                                <td>No</td>
2024                        </tr>
2025                        <tr>
2026                                <td>nameStatus</td>
2027                                <td>Boolean</td>
2028                                <td>Names + status of changed files. See --name-status of
2029                                        git-log.</td>
2030                                <td>false</td>
2031                                <td>No</td>
2032                        </tr>
2033                        <tr>
2034                                <td>maxCount</td>
2035                                <td>Integer</td>
2036                                <td>Number of commits to show. See -&lt;n&gt;|-n|--max-count of
2037                                        git-log.</td>
2038                                <td>n/a</td>
2039                                <td>No</td>
2040                        </tr>
2041                        <tr>
2042                                <td>noMerges</td>
2043                                <td>boolean</td>
2044                                <td>Don't show commits with more than one parent. See
2045                                        --no-merges of git-log.</td>
2046                                <td>false</td>
2047                                <td>No</td>
2048                        </tr>
2049                </tbody>
2050        </table>
2051        <h3>Example</h3>
2052        <pre>
2053&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
2054&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
2055
2056&lt;!-- clone repository --&gt;
2057&lt;gitclone
2058    repository="git://github.com/path/to/repo/repo.git"
2059    targetPath="${repo.dir.resolved}" /&gt;
2060<!-- write git-log output to "logs" variable -->
2061&lt;gitlog
2062    paths="${repo.dir.resolved}"
2063    format="oneline"
2064    maxCount="2"
2065    stat="true"
2066    noMerges="false"
2067    since="Sun Jan 23 23:55:42 2011 +0300"
2068    until="Mon Jan 24 09:59:33 2011 +0300"
2069    outputProperty="logs"
2070    repository="${repo.dir.resolved}" /&gt;
2071</pre>
2072
2073        <h2>
2074                <a name="HttpGetTask"></a>HttpGetTask
2075        </h2>
2076        <p>This task will download a file through HTTP GET and save it to a
2077                specified directory. You need an installed version of HTTP_Request2 to
2078                use this task.</p>
2079        <h3>Attributes</h3>
2080        <table>
2081                <thead>
2082                        <tr>
2083                                <th>Name</th>
2084                                <th>Type</th>
2085                                <th>Description</th>
2086                                <th>Default</th>
2087                                <th>Required</th>
2088                        </tr>
2089                </thead>
2090                <tbody>
2091                        <tr>
2092                                <td>url</td>
2093                                <td>String</td>
2094                                <td>The request URL</td>
2095                                <td>n/a</td>
2096                                <td>Yes</td>
2097                        </tr>
2098                        <tr>
2099                                <td>dir</td>
2100                                <td>String</td>
2101                                <td>The directory to save the file</td>
2102                                <td>n/a</td>
2103                                <td>Yes</td>
2104                        </tr>
2105                        <tr>
2106                                <td>filename</td>
2107                                <td>String</td>
2108                                <td>The filename for the downloaded file</td>
2109                                <td>The filename part of the URL</td>
2110                                <td>No</td>
2111                        </tr>
2112                </tbody>
2113        </table>
2114        <h3>Example</h3>
2115        <pre>
2116 &lt;httpget url=&quot;http://buildserver.com/builds/latest.stable.tar.bz2&quot; dir=&quot;/usr/local/lib&quot;/&gt;
2117</pre>
2118
2119        <h2>
2120                <a name="HttpRequestTask"></a>HttpRequestTask
2121        </h2>
2122        <p>This task will make an HTTP request to the provided URL and
2123                match the response against the provided regular expression. If an
2124                regular expression is provided and doesn't match the build will fail.
2125                You need an installed version of HTTP_Request2 to use this task.</p>
2126        <h3>Attributes</h3>
2127        <table>
2128                <thead>
2129                        <tr>
2130                                <th>Name</th>
2131                                <th>Type</th>
2132                                <th>Description</th>
2133                                <th>Default</th>
2134                                <th>Required</th>
2135                        </tr>
2136                </thead>
2137                <tbody>
2138                        <tr>
2139                                <td>url</td>
2140                                <td>String</td>
2141                                <td>The request URL</td>
2142                                <td>n/a</td>
2143                                <td>Yes</td>
2144                        </tr>
2145                        <tr>
2146                                <td>responseRegex</td>
2147                                <td>String</td>
2148                                <td>The regular expression for matching the response</td>
2149                                <td>n/a</td>
2150                                <td>No</td>
2151                        </tr>
2152                        <tr>
2153                                <td>authUser</td>
2154                                <td>String</td>
2155                                <td>The authentication user name</td>
2156                                <td>n/a</td>
2157                                <td>No</td>
2158                        </tr>
2159                        <tr>
2160                                <td>authPassword</td>
2161                                <td>String</td>
2162                                <td>The authentication password</td>
2163                                <td>n/a</td>
2164                                <td>No</td>
2165                        </tr>
2166                        <tr>
2167                                <td>authScheme</td>
2168                                <td>String</td>
2169                                <td>The authentication scheme</td>
2170                                <td>basic</td>
2171                                <td>No</td>
2172                        </tr>
2173                        <tr>
2174                                <td>verbose</td>
2175                                <td>Boolean</td>
2176                                <td>Whether to enable detailed logging</td>
2177                                <td>false</td>
2178                                <td>No</td>
2179                        </tr>
2180                        <tr>
2181                                <td>observerEvents</td>
2182                                <td>String</td>
2183                                <td>Comma-separated list of events to log when <em>verbose</em>
2184                                        is set to <em>true</em></td>
2185                                <td>connect, sentHeaders, sentBodyPart, receivedHeaders,
2186                                        receivedBody, disconnect</td>
2187                                <td>No</td>
2188                        </tr>
2189                </tbody>
2190        </table>
2191        <h3>Supported Nested Tags</h3>
2192        <ul>
2193                <li>config
2194                        <p>Holds additional config data. See HTTP_Request2 for supported
2195                                values.</p>
2196                        <h3>Attributes</h3>
2197                        <table>
2198                                <thead>
2199                                        <tr>
2200                                                <th>Name</th>
2201                                                <th>Type</th>
2202                                                <th>Description</th>
2203                                                <th>Default</th>
2204                                                <th>Required</th>
2205                                        </tr>
2206                                </thead>
2207                                <tbody>
2208                                        <tr>
2209                                                <td>name</td>
2210                                                <td>String</td>
2211                                                <td>Config parameter name</td>
2212                                                <td>n/a</td>
2213                                                <td>Yes</td>
2214                                        </tr>
2215                                        <tr>
2216                                                <td>value</td>
2217                                                <td>Mixed</td>
2218                                                <td>Config value</td>
2219                                                <td>n/a</td>
2220                                                <td>Yes</td>
2221                                        </tr>
2222                                </tbody>
2223                        </table></li>
2224                <li>header
2225                        <p>
2226                                Holds additional header <em>name</em> and <em>value</em>.
2227                        </p>
2228                        <h3>Attributes</h3>
2229                        <table>
2230                                <thead>
2231                                        <tr>
2232                                                <th>Name</th>
2233                                                <th>Type</th>
2234                                                <th>Description</th>
2235                                                <th>Default</th>
2236                                                <th>Required</th>
2237                                        </tr>
2238                                </thead>
2239                                <tbody>
2240                                        <tr>
2241                                                <td>name</td>
2242                                                <td>String</td>
2243                                                <td>Header name</td>
2244                                                <td>n/a</td>
2245                                                <td>Yes</td>
2246                                        </tr>
2247                                        <tr>
2248                                                <td>value</td>
2249                                                <td>String</td>
2250                                                <td>Header value</td>
2251                                                <td>n/a</td>
2252                                                <td>Yes</td>
2253                                        </tr>
2254                                </tbody>
2255                        </table></li>
2256        </ul>
2257        <h3>Examples</h3>
2258        <pre>
2259 &lt;http-request url=&quot;http://my-production.example.com/check-deployment.php&quot;/&gt;
2260</pre>
2261        <p>Just perform a HTTP request to the given URL.</p>
2262        <pre>
2263 &lt;http-request
2264   url=&quot;http://my-production.example.com/check-deployment.php&quot;
2265   responseRegex=&quot;/Heartbeat/&quot;
2266   verbose&quot;true&quot;
2267   observerEvents=&quot;connect, disconnect&quot;/&gt;
2268</pre>
2269        <p>Perform a HTTP request to the given URL and matching the
2270                response against the given regex pattern. Enable detailed logging and
2271                log only the specified events.</p>
2272        <pre>
2273 &lt;http-request url="http://my-production.example.com/check-deployment.php"&gt;
2274   &lt;config name=&quot;adapter&quot; value=&quot;HTTP_Request2_Adapter_Curl&quot;/&gt;
2275   &lt;header name=&quot;user-agent&quot; value=&quot;Phing HttpRequestTask&quot;/&gt;
2276 &lt;/http-request&gt;
2277</pre>
2278        <p>Perform a HTTP request to the given URL. Setting request adapter
2279                to curl instead of socket. Setting an additional header.</p>
2280
2281        <h2>
2282                <a name="IoncubeEncoderTask"></a>IoncubeEncoderTask
2283        </h2>
2284        <p>
2285                The <em>IoncubeEncoderTask</em> executes the <a
2286                        href="http://www.ioncube.com" target="_blank">ionCube</a> encoder
2287                (for either PHP4 or PHP5 projects).
2288        </p>
2289        <p>
2290                For more information on the meaning of the various options please
2291                consult the ionCube <a href="http://www.ioncube.com/USER-GUIDE.pdf"
2292                        target="_blank">user guide</a>.
2293        </p>
2294        <h3>Example</h3>
2295        <pre>&lt;ioncubeencoder
2296   binary="true"
2297   copy="*.ini config/*"
2298   encode="*.inc licenses/license.key"
2299   encrypt="*.tpl *.xml"
2300   fromdir="files"
2301   ignore="*.bak RCS/ *~ docs/"
2302   ioncubepath="/usr/local/ioncube"
2303   keep="docs/README"
2304   licensepath="mylicense.txt"
2305   optimize="max"
2306   passphrase="mypassphrase"
2307   phpversion="4"
2308   noshortopentags="false"
2309   targetoption="replace"
2310   todir="encoded"
2311   withoutruntimeloadersupport="true"
2312   callbackfile="errhandler.php"
2313   obfuscationexlusionsfile="obfex.txt"&gt;
2314  &lt;comment&gt;A project encoded with the ionCube encoder.&lt;/comment&gt;
2315&lt;/ioncubeencoder&gt;
2316</pre>
2317        <h3>Attributes</h3>
2318        <table>
2319                <thead>
2320                        <tr>
2321                                <th>Name</th>
2322                                <th>Type</th>
2323                                <th>Description</th>
2324                                <th>Default</th>
2325                                <th>Required</th>
2326                        </tr>
2327                </thead>
2328                <tbody>
2329                        <tr>
2330                                <td>allowedserver</td>
2331                                <td>String</td>
2332                                <td>Restricts the encoded files to particular servers and/or
2333                                        domains. Consult the IonCude documentation for more information.</td>
2334                                <td>none</td>
2335                                <td>No</td>
2336                        </tr>
2337                        <tr>
2338                                <td>binary</td>
2339                                <td>Boolean</td>
2340                                <td>Whether to save encoded files in binary format (default is
2341                                        ASCII format)</td>
2342                                <td>false</td>
2343                                <td>No</td>
2344                        </tr>
2345                        <tr>
2346                                <td>copy</td>
2347                                <td>String</td>
2348                                <td>Specifies files or directories to exclude from being
2349                                        encoded or encrypted and copy them to the target directory
2350                                        (separated by space).</td>
2351                                <td>none</td>
2352                                <td>No</td>
2353                        </tr>
2354                        <tr>
2355                                <td>encode</td>
2356                                <td>String</td>
2357                                <td>Specifies additional file patterns, files or directories to
2358                                        encode, or to reverse the effect of <em>copy</em></td>
2359                                <td>none</td>
2360                                <td>No</td>
2361                        </tr>
2362                        <tr>
2363                                <td>encrypt</td>
2364                                <td>String</td>
2365                                <td>Specify files or directories (space separated list) that
2366                                        are to be encrypted.</td>
2367                                <td>none</td>
2368                                <td>No</td>
2369                        </tr>
2370                        <tr>
2371                                <td>expirein</td>
2372                                <td>String</td>
2373                                <td>Sets a period in seconds (s), minutes (m), hours (h) or
2374                                        days (d) after which the files expire. Accepts: <em>500s</em> or <em>55m</em>
2375                                        or <em>24h</em> or <em>7d</em></td>
2376                                <td>none</td>
2377                                <td>No</td>
2378                        </tr>
2379                        <tr>
2380                                <td>expireon</td>
2381                                <td>String</td>
2382                                <td>Sets a YYYY-MM-DD date to expire the files.</td>
2383                                <td>none</td>
2384                                <td>No</td>
2385                        </tr>
2386                        <tr>
2387                                <td>fromdir</td>
2388                                <td>String</td>
2389                                <td>Path containing source files</td>
2390                                <td>none</td>
2391                                <td>Yes</td>
2392                        </tr>
2393                        <tr>
2394                                <td>ignore</td>
2395                                <td>String</td>
2396                                <td>Set files and directories to ignore entirely and exclude
2397                                        from the target directory (separated by space).</td>
2398                                <td>none</td>
2399                                <td>Yes</td>
2400                        </tr>
2401                        <tr>
2402                                <td>ioncubepath</td>
2403                                <td>String</td>
2404                                <td>Path to the ionCube binaries</td>
2405                                <td>/usr/local/ioncube</td>
2406                                <td>No</td>
2407                        </tr>
2408                        <tr>
2409                                <td>keep</td>
2410                                <td>String</td>
2411                                <td>Set files and directories not to be ignored (separated by
2412                                        space).</td>
2413                                <td>none</td>
2414                                <td>No</td>
2415                        </tr>
2416                        <tr>
2417                                <td>licensepath</td>
2418                                <td>String</td>
2419                                <td>Path to the license file that will be used by the encoded
2420                                        files</td>
2421                                <td>none</td>
2422                                <td>No</td>
2423                        </tr>
2424                        <tr>
2425                                <td>nodoccomments</td>
2426                                <td>String</td>
2427                                <td>Omits documents comments ( /** ... */ ) from the encoded
2428                                        files.</td>
2429                                <td>none</td>
2430                                <td>No</td>
2431                        </tr>
2432                        <tr>
2433                                <td>obfuscation-key</td>
2434                                <td>String</td>
2435                                <td>The obfuscation key must be supplied when using the
2436                                        obfuscate option</td>
2437                                <td>none</td>
2438                                <td>No</td>
2439                        </tr>
2440                        <tr>
2441                                <td>obfuscate</td>
2442                                <td>String</td>
2443                                <td>The Encoder can obfuscate the names of global functions,
2444                                        the names of local variables in global functions, and line numbers.
2445                                        Use either <em>all</em> or any of <em>functions</em>, <em>locals</em>
2446                                        or <em>linenos</em> separated by a space.</td>
2447                                <td>none</td>
2448                                <td>No</td>
2449                        </tr>
2450                        <tr>
2451                                <td>optimize</td>
2452                                <td>String</td>
2453                                <td>Controls the optimization of the encoded files, accepts
2454                                        either <em>more</em> or <em>max</em></td>
2455                                <td>none</td>
2456                                <td>No</td>
2457                        </tr>
2458                        <tr>
2459                                <td>passphrase</td>
2460                                <td>String</td>
2461                                <td>The passphrase to use when encoding with a license file</td>
2462                                <td>none</td>
2463                                <td>No</td>
2464                        </tr>
2465                        <tr>
2466                                <td>phpversion</td>
2467                                <td>Integer</td>
2468                                <td>The PHP version to use</td>
2469                                <td>5</td>
2470                                <td>No</td>
2471                        </tr>
2472                        <tr>
2473                                <td>targetoption</td>
2474                                <td>String</td>
2475                                <td>Option to use when target directory exists, accepts <em>replace</em>,
2476                                        <em>merge</em>, <em>update</em> and <em>rename</em></td>
2477                                <td>none</td>
2478                                <td>No</td>
2479                        </tr>
2480                        <tr>
2481                                <td>todir</td>
2482                                <td>String</td>
2483                                <td>Path to save encoded files to</td>
2484                                <td>none</td>
2485                                <td>Yes</td>
2486                        </tr>
2487                        <tr>
2488                                <td>withoutruntimeloadersupport</td>
2489                                <td>Boolean</td>
2490                                <td>Wether to disable support for runtime initialization of the
2491                                        ionCube Loader</td>
2492                                <td>false</td>
2493                                <td>No</td>
2494                        </tr>
2495                        <tr>
2496                                <td>noshortopentags</td>
2497                                <td>Boolean</td>
2498                                <td>Wether to disable support for short PHP tags</td>
2499                                <td>false</td>
2500                                <td>No</td>
2501                        </tr>
2502                        <tr>
2503                                <td>callbackfile</td>
2504                                <td>String</td>
2505                                <td>Path to callback file (.php)</td>
2506                                <td>n/a</td>
2507                                <td>No</td>
2508                        </tr>
2509                        <tr>
2510                                <td>obfuscationexclusionsfile</td>
2511                                <td>String</td>
2512                                <td>Path to obfuscation exclusions file</td>
2513                                <td>n/a</td>
2514                                <td>No</td>
2515                        </tr>
2516                </tbody>
2517        </table>
2518        <h3>Supported Nested Tags</h3>
2519        <ul>
2520                <li>comment
2521                        <p>Custom text that is added to the start of each encoded file.</p></li>
2522        </ul>
2523        <h2>
2524                <a name="IoncubeLicenseTask"></a>IoncubeLicenseTask
2525        </h2>
2526        <p>
2527                The <em>IoncubeLicenseTask</em> executes the <a
2528                        href="http://www.ioncube.com" target="_blank">ionCube</a>
2529                make_license program.
2530        </p>
2531        <p>
2532                For more information on the meaning of the various options please
2533                consult the ionCube <a href="http://www.ioncube.com/USER-GUIDE.pdf"
2534                        target="_blank">user guide</a>.
2535        </p>
2536        <h3>Example</h3>
2537        <pre>&lt;ioncubelicense
2538   ioncubepath="/usr/local/ioncube"
2539   licensepath="mylicense.txt"
2540   passphrase="mypassphrase"
2541   allowedserver="00:06:4F:01:8F:2C"
2542   expireon="2010-09-01"
2543   expirein="7d"&gt;
2544  &lt;comment&gt;A license file made with the ionCube encoder.&lt;/comment&gt;
2545&lt;/ioncubelicense&gt;
2546</pre>
2547        <h3>Attributes</h3>
2548        <table>
2549                <thead>
2550                        <tr>
2551                                <th>Name</th>
2552                                <th>Type</th>
2553                                <th>Description</th>
2554                                <th>Default</th>
2555                                <th>Required</th>
2556                        </tr>
2557                </thead>
2558                <tbody>
2559                        <tr>
2560                                <td>ioncubepath</td>
2561                                <td>String</td>
2562                                <td>Path to the ionCube binaries</td>
2563                                <td>/usr/local/ioncube</td>
2564                                <td>No</td>
2565                        </tr>
2566                        <tr>
2567                                <td>licensepath</td>
2568                                <td>String</td>
2569                                <td>Path to the license file that will be generated</td>
2570                                <td>none</td>
2571                                <td>No</td>
2572                        </tr>
2573                        <tr>
2574                                <td>passphrase</td>
2575                                <td>String</td>
2576                                <td>The passphrase to use when generating the license file</td>
2577                                <td>none</td>
2578                                <td>No</td>
2579                        </tr>
2580                        <tr>
2581                                <td>allowedserver</td>
2582                                <td>String</td>
2583                                <td>Restricts the license to particular servers and/or domains.
2584                                        Consult the IonCude documentation for more information.</td>
2585                                <td>none</td>
2586                                <td>No</td>
2587                        </tr>
2588                        <tr>
2589                                <td>expirein</td>
2590                                <td>String</td>
2591                                <td>Sets a period in seconds (s), minutes (m), hours (h) or
2592                                        days (d) after which the license expires. Accepts: 500s or 55m or
2593                                        24h or 7d.</td>
2594                                <td>none</td>
2595                                <td>No</td>
2596                        </tr>
2597                        <tr>
2598                                <td>expireon</td>
2599                                <td>String</td>
2600                                <td>Sets a YYYY-MM-DD date to expire the license.</td>
2601                                <td>none</td>
2602                                <td>No</td>
2603                        </tr>
2604                </tbody>
2605        </table>
2606        <h3>Supported Nested Tags</h3>
2607        <ul>
2608                <li>comment
2609                        <p>Custom text that is added to the start of each encoded file.</p></li>
2610        </ul>
2611        <h2>
2612                <a name="JslLintTask"></a>JslLintTask
2613        </h2>
2614        <p>
2615                The <em>JslLintTask</em> uses the <a
2616                        href="http://www.javascriptlint.com" target="_blank">Javascript
2617                        Lint</a> program to check the sytax on one or more JavaScript source code
2618                files.
2619        </p>
2620        <p>
2621                <b>NB:</b> the Javascript lint program must be in the system path!
2622        </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
2653                                        error.</td>
2654                                <td>false</td>
2655                                <td>No</td>
2656                        </tr>
2657                        <tr>
2658                                <td>showwarnings</td>
2659                                <td>Boolean</td>
2660                                <td>Sets the flag if warnings should be shown.</td>
2661                                <td>true</td>
2662                                <td>No</td>
2663                        </tr>
2664                        <tr>
2665                                <td>cachefile</td>
2666                                <td>String</td>
2667                                <td>If set, enables writing of last-modified times to <em>cachefile</em>,
2668                                        to speed up processing of files that rarely change</td>
2669                                <td>none</td>
2670                                <td>No</td>
2671                        </tr>
2672                        <tr>
2673                                <td>conffile</td>
2674                                <td>String</td>
2675                                <td>Path to JSL config file</td>
2676                                <td>none</td>
2677                                <td>No</td>
2678                        </tr>
2679                </tbody>
2680        </table>
2681        <h3>Supported Nested Tags</h3>
2682        <ul>
2683                <li>fileset</li>
2684        </ul>
2685        <h3>Example</h3>
2686        <pre>
2687&lt;jsllint file=&quot;path/to/source.php&quot;/&gt;
2688</pre>
2689        <p>Checking syntax of one particular source file.</p>
2690        <pre>
2691&lt;jsllint&gt;
2692&nbsp;&nbsp;&lt;fileset dir=&quot;src&quot;&gt;
2693&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.php"/&gt;
2694&nbsp;&nbsp;&lt;/fileset&gt;
2695&lt;/jsllint&gt;
2696</pre>
2697        <p>Check syntax of a fileset of source files.</p>
2698        <h2>
2699                <a name="JsMinTask"></a>JsMinTask
2700        </h2>
2701        <p>
2702                The <em>JsMinTask</em> minifies JavaScript files using <a
2703                        href="http://code.google.com/p/jsmin-php/">JsMin</a>. JsMin is
2704                bundled with Phing and does not need to be installed separately.
2705        </p>
2706        <p>
2707                For more information on minifying JavaScript files see <a
2708                        href="http://www.crockford.com/javascript/jsmin.html" target="_blank">Douglas
2709                        Crockford's introduction to minifying JavaScript files</a>.
2710        </p>
2711        <h3>Example</h3>
2712        <pre>&lt;jsMin targetDir="docroot/script/minified" failOnError="false"&gt;
2713  &lt;fileset dir="docroot/script"&gt;
2714    &lt;include name="**/*.js"/&gt;
2715  &lt;/fileset&gt;
2716&lt;/jsMin&gt;
2717</pre>
2718        <h3>Attributes</h3>
2719        <table>
2720                <thead>
2721                        <tr>
2722                                <th>Name</th>
2723                                <th>Type</th>
2724                                <th>Description</th>
2725                                <th>Default</th>
2726                                <th>Required</th>
2727                        </tr>
2728                </thead>
2729                <tbody>
2730                        <tr>
2731                                <td>targetDir</td>
2732                                <td>String</td>
2733                                <td>Path where to store minified JavaScript files</td>
2734                                <td>none</td>
2735                                <td>Yes</td>
2736                        </tr>
2737                        <tr>
2738                                <td>failonerror</td>
2739                                <td>Boolean</td>
2740                                <td>Whether an error while minifying a JavaScript file should
2741                                        stop the build or not</td>
2742                                <td>false</td>
2743                                <td>No</td>
2744                        </tr>
2745                </tbody>
2746        </table>
2747        <h3>Supported Nested Tags</h3>
2748        <ul>
2749                <li>fileset
2750                        <p>JavaScript files to be minified.</p></li>
2751        </ul>
2752
2753        <h2>
2754                <a name="MailTask"></a>MailTask
2755        </h2>
2756        <p>A task to send email.</p>
2757
2758        <h3>Example</h3>
2759        <pre>&lt;mail tolist=&quot;user@example.org&quot; subject=&quot;build complete&quot;"&gt;The build process is a success...&lt;/mail&gt;</pre>
2760
2761        <h3>Attributes</h3>
2762        <table>
2763                <thead>
2764                        <tr>
2765                                <th>Name</th>
2766                                <th>Type</th>
2767                                <th>Description</th>
2768                                <th>Default</th>
2769                                <th>Required</th>
2770                        </tr>
2771                </thead>
2772                <tbody>
2773                        <tr>
2774                                <td>from</td>
2775                                <td>String</td>
2776                                <td>Email address of sender.</td>
2777                                <td>none</td>
2778                                <td>Yes</td>
2779                        </tr>
2780                        <tr>
2781                                <td>tolist</td>
2782                                <td>String</td>
2783                                <td>Comma-separated list of recipients.</td>
2784                                <td>none</td>
2785                                <td>Yes</td>
2786                        </tr>
2787                        <tr>
2788                                <td>message</td>
2789                                <td>String</td>
2790                                <td>Message to send in the body of the email.</td>
2791                                <td>none</td>
2792                                <td>No</td>
2793                        </tr>
2794                        <tr>
2795                                <td>subject</td>
2796                                <td>String</td>
2797                                <td>Email subject line.</td>
2798                                <td>none</td>
2799                                <td>No</td>
2800                        </tr>
2801                </tbody>
2802        </table>
2803        <h3>Supported Nested Tags</h3>
2804        <ul>
2805                <li>fileset
2806                        <p>JavaScript files to be minified.</p></li>
2807        </ul>
2808
2809        <h2>
2810                <a name="PatchTask"></a>PatchTask
2811        </h2>
2812        <p>
2813                The <em>PatchTask</em> uses the <a
2814                        href="http://savannah.gnu.org/projects/patch" target="_blank">patch</a>
2815                program to apply diff file to originals.
2816        </p>
2817        <p>
2818                <b>NB:</b> the patch program must be in the system path!
2819        </p>
2820
2821        <h3>Attributes</h3>
2822        <table>
2823                <thead>
2824                        <tr>
2825                                <th>Name</th>
2826                                <th>Type</th>
2827                                <th>Description</th>
2828                                <th>Default</th>
2829                                <th>Required</th>
2830                        </tr>
2831                </thead>
2832                <tbody>
2833                        <tr>
2834                                <td>patchfile</td>
2835                                <td>String</td>
2836                                <td>File that includes the diff output</td>
2837                                <td>n/a</td>
2838                                <td>Yes</td>
2839                        </tr>
2840                        <tr>
2841                                <td>originalfile</td>
2842                                <td>String</td>
2843                                <td>File to patch. If not specified Task tries to guess it from
2844                                        the diff file</td>
2845                                <td>none</td>
2846                                <td>No</td>
2847                        </tr>
2848                        <tr>
2849                                <td>destfile</td>
2850                                <td>String</td>
2851                                <td>File to send the output to instead of patching the file in
2852                                        place</td>
2853                                <td>none</td>
2854                                <td>No</td>
2855                        </tr>
2856                        <tr>
2857                                <td>backups</td>
2858                                <td>Boolean</td>
2859                                <td>Keep backups of the unpatched files</td>
2860                                <td>false</td>
2861                                <td>No</td>
2862                        </tr>
2863                        <tr>
2864                                <td>quiet</td>
2865                                <td>Boolean</td>
2866                                <td>Work silently unless an error occurs</td>
2867                                <td>false</td>
2868                                <td>No</td>
2869                        </tr>
2870                        <tr>
2871                                <td>reverse</td>
2872                                <td>Boolean</td>
2873                                <td>Assume patch was created with old and new files swapped</td>
2874                                <td>false</td>
2875                                <td>No</td>
2876                        </tr>
2877                        <tr>
2878                                <td>ignorewhitespace</td>
2879                                <td>Boolean</td>
2880                                <td>Ignore whitespace differences</td>
2881                                <td>false</td>
2882                                <td>No</td>
2883                        </tr>
2884                        <tr>
2885                                <td>strip</td>
2886                                <td>Integer</td>
2887                                <td>Strip the smallest prefix containing specified number of
2888                                        leading slashes from filenames</td>
2889                                <td>none</td>
2890                                <td>No</td>
2891                        </tr>
2892                        <tr>
2893                                <td>dir</td>
2894                                <td>String</td>
2895                                <td>The directory in which to run the patch command</td>
2896                                <td>none</td>
2897                                <td>No</td>
2898                        </tr>
2899                        <tr>
2900                                <td>haltonfailure</td>
2901                                <td>Boolean</td>
2902                                <td>Stop the build process if the patching process encounters
2903                                        an error.</td>
2904                                <td>false</td>
2905                                <td>No</td>
2906                        </tr>
2907                </tbody>
2908        </table>
2909
2910        <h3>Example</h3>
2911        <pre>
2912&lt;patch
2913&nbsp;&nbsp;patchfile=&quot;/path/to/patches/file.ext.patch&quot;
2914&nbsp;&nbsp;dir=&quot;/path/to/original&quot;
2915/&gt;
2916</pre>
2917
2918        <p>Apply "file.ext.path" to original file locataed in
2919                "/path/to/original" folder.</p>
2920
2921        <h2>
2922                <a name="PDOSQLExecTask"></a>PDOSQLExecTask
2923        </h2>
2924        <p>
2925                The <em>PDOSQLExecTask</em> executes SQL statements using PDO.
2926        </p>
2927        <h3>Examples</h3>
2928        <pre>&lt;pdosqlexec url="pgsql:host=localhost dbname=test"&gt;
2929  &lt;fileset dir=&quot;sqlfiles&quot;&gt;
2930          &lt;include name=&quot;*.sql&quot;/&gt;
2931          &lt;/fileset&gt;<br />&lt;/pdosqlexec&gt;
2932</pre>
2933        <pre>&lt;pdosqlexec url="mysql:host=localhost;dbname=test" userid="username" password="password"&gt;
2934  &lt;transaction src=&quot;path/to/sqlfile.sql&quot;/&gt;
2935  &lt;formatter type=&quot;plain&quot; outfile=&quot;path/to/output.txt&quot;/&gt;
2936  &lt;/pdosqlexec&gt;
2937</pre>
2938        <p>
2939                <strong>Note:</strong> because of backwards compatiblity, the
2940                PDOSQLExecTask can also be called using the <em>'pdo'</em> statement.
2941        </p>
2942        <h3>Attributes</h3>
2943        <table>
2944                <thead>
2945                        <tr>
2946                                <th>Name</th>
2947                                <th>Type</th>
2948                                <th>Description</th>
2949                                <th>Default</th>
2950                                <th>Required</th>
2951                        </tr>
2952                </thead>
2953                <tbody>
2954                        <tr>
2955                                <td>url</td>
2956                                <td>String</td>
2957                                <td>PDO connection URL (DSN)</td>
2958                                <td>none</td>
2959                                <td>Yes</td>
2960                        </tr>
2961                        <tr>
2962                                <td>userid</td>
2963                                <td>String</td>
2964                                <td>Username for connection (if it cannot be specified in URL)
2965                                </td>
2966                                <td>none</td>
2967                                <td>No</td>
2968                        </tr>
2969                        <tr>
2970                                <td>password</td>
2971                                <td>String</td>
2972                                <td>The password to use for the connection (if it cannot be
2973                                        specified in URL)</td>
2974                                <td>none</td>
2975                                <td>No</td>
2976                        </tr>
2977                        <!--        <tr>
2978          <td>encoding</td>
2979          <td>String</td>
2980          <td>The database encoding.</td>
2981          <td>none</td>
2982          <td>No</td>
2983        </tr> -->
2984                        <tr>
2985                                <td>src</td>
2986                                <td>File</td>
2987                                <td>A single source file of SQL statements to execute.</td>
2988                                <td>none</td>
2989                                <td>No</td>
2990                        </tr>
2991                        <tr>
2992                                <td>onerror</td>
2993                                <td>String</td>
2994                                <td>The action to perform on error (continue, stop, or abort)</td>
2995                                <td>abort</td>
2996                                <td>No</td>
2997                        </tr>
2998                        <tr>
2999                                <td>delimiter</td>
3000                                <td>String</td>
3001                                <td>The delimeter to separate SQL statements (e.g.
3002                                        &quot;GO&quot; in MSSQL)</td>
3003                                <td>;</td>
3004                                <td>No</td>
3005                        </tr>
3006                        <tr>
3007                                <td>delimitertype</td>
3008                                <td>String</td>
3009                                <td>The delimiter type (&quot;normal&quot; or &quot;row&quot;).
3010                                        Normal means that any occurence of the delimiter terminate the SQL
3011                                        command whereas with row, only a line containing just the delimiter
3012                                        is recognized as the end of the command.</td>
3013                                <td>normal</td>
3014                                <td>No</td>
3015                        </tr>
3016                        <tr>
3017                                <td>autocommit</td>
3018                                <td>Boolean</td>
3019                                <td>Whether to autocommit every single statement.</td>
3020                                <td>false</td>
3021                                <td>No</td>
3022                        </tr>
3023                </tbody>
3024        </table>
3025        <h3>Supported Nested Tags</h3>
3026        <ul>
3027                <li>transaction
3028                        <p>Wrapper for a single transaction. Transactions allow several
3029                                files or blocks of statements to be executed using the same PDO
3030                                connection and commit operation in between.</p>
3031                        <h3>Attributes</h3>
3032                        <table>
3033                                <thead>
3034                                        <tr>
3035                                                <th>Name</th>
3036                                                <th>Type</th>
3037                                                <th>Description</th>
3038                                                <th>Default</th>
3039                                                <th>Required</th>
3040                                        </tr>
3041                                </thead>
3042                                <tbody>
3043                                        <tr>
3044                                                <td>tsrcfile</td>
3045                                                <td>String</td>
3046                                                <td>File with statements to be run as one transaction</td>
3047                                                <td>n/a</td>
3048                                                <td>No</td>
3049                                        </tr>
3050                                </tbody>
3051                        </table>
3052                </li>
3053                <li>fileset
3054                        <p>Files containing SQL statements.</p></li>
3055                <li>filelist
3056                        <p>Files containing SQL statements.</p></li>
3057                <li>formatter
3058                        <p>
3059                                The results of any queries that are executed can be printed in
3060                                different formats. Output will always be sent to a file, unless you
3061                                set the <em>usefile</em> attribute to <em>false</em>. The path to
3062                                the output file file can be specified by the <em>outfile</em>
3063                                attribute; there is a default filename that will be returned by the
3064                                formatter if no output file is specified.
3065                        </p>
3066                        <p>There are three predefined formatters - one prints the query
3067                                results in XML format, the other emits plain text. Custom formatters
3068                                that extend phing.tasks.pdo.PDOResultFormatter can be specified.</p>
3069                        <h3>Attributes</h3>
3070                        <table>
3071                                <thead>
3072                                        <tr>
3073                                                <th>Name</th>
3074                                                <th>Type</th>
3075                                                <th>Description</th>
3076                                                <th>Default</th>
3077                                                <th>Required</th>
3078                                        </tr>
3079                                </thead>
3080                                <tbody>
3081                                        <tr>
3082                                                <td>type</td>
3083                                                <td>String</td>
3084                                                <td>Use a predefined formatter (either <em>xml</em> or <em>plain</em>).
3085                                                </td>
3086                                                <td>n/a</td>
3087                                                <td rowspan="2">One of these attributes is required.</td>
3088                                        </tr>
3089                                        <tr>
3090                                                <td>classname</td>
3091                                                <td>String</td>
3092                                                <td>Name of a custom formatter class (must extend
3093                                                        phing.tasks.ext.pdo.PDOResultFormatter).</td>
3094                                                <td>n/a</td>
3095                                        </tr>
3096                                        <tr>
3097                                                <td>usefile</td>
3098                                                <td>Boolean</td>
3099                                                <td>Boolean that determines whether output should be sent to
3100                                                        a file.</td>
3101                                                <td>true</td>
3102                                                <td>No</td>
3103                                        </tr>
3104                                        <tr>
3105                                                <td>outfile</td>
3106                                                <td>File</td>
3107                                                <td>Path to file in which to store result.</td>
3108                                                <td>Depends on formatter</td>
3109                                                <td>No</td>
3110                                        </tr>
3111                                        <tr>
3112                                                <td>showheaders</td>
3113                                                <td>Boolean</td>
3114                                                <td>(only applies to plain formatter) Whether to show column
3115                                                        headers.</td>
3116                                                <td>false</td>
3117                                                <td>No</td>
3118                                        </tr>
3119                                        <tr>
3120                                                <td>coldelim</td>
3121                                                <td>String</td>
3122                                                <td>(only applies to plain formatter) The column delimiter.</td>
3123                                                <td>,</td>
3124                                                <td>No</td>
3125                                        </tr>
3126                                        <tr>
3127                                                <td>rowdelim</td>
3128                                                <td>String</td>
3129                                                <td>(only applies to plain formatter) The row delimiter.</td>
3130                                                <td>\n</td>
3131                                                <td>No</td>
3132                                        </tr>
3133                                        <tr>
3134                                                <td>encoding</td>
3135                                                <td>String</td>
3136                                                <td>(only applies to XML formatter) The xml document
3137                                                        encoding.</td>
3138                                                <td>(PHP default)</td>
3139                                                <td>No</td>
3140                                        </tr>
3141                                        <tr>
3142                                                <td>formatoutput</td>
3143                                                <td>Boolean</td>
3144                                                <td>(only applies to XML formatter) Whether to format XML
3145                                                        output.</td>
3146                                                <td>true</td>
3147                                                <td>No</td>
3148                                        </tr>
3149                                </tbody>
3150                        </table>
3151                        <h3>Examples</h3> <pre>&lt;pdo url="pgsql:host=localhost dbname=test"&gt;
3152  &lt;fileset dir=&quot;sqlfiles&quot;&gt;
3153          &lt;include name=&quot;*.sql&quot;/&gt;
3154  &lt;/fileset&gt;
3155
3156  &lt;!-- xml formatter --&gt;
3157  &lt;formatter type=&quot;xml&quot; output=&quot;output.xml&quot;/&gt;
3158
3159  &lt;!-- custom formatter --&gt;
3160  &lt;formatter classname=&quot;path.to.CustomFormatterClass&quot;&gt;
3161    &lt;param name=&quot;someClassAttrib&quot; value=&quot;some-value&quot;/&gt;
3162  &lt;/formatter&gt;
3163
3164  &lt;!-- No output file + usefile=false means it goes to phing log --&gt;
3165  &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot; /&gt;<br />&lt;/pdo&gt;
3166</pre>
3167                </li>
3168        </ul>
3169        <h2>
3170                <a name="PearPackageTask"></a> PearPackageTask
3171        </h2>
3172        <p>
3173                With the PearPackageTask, you can create a package.xml which can be
3174                installed using the PEAR installer. Use this in conjunction with the <a
3175                        href="#Tasks.TarTask">TarTask</a> to completely script the building
3176                of a PEAR package.
3177        </p>
3178
3179        <p>
3180                <strong>Note that this task creates a <em>version 1</em>
3181                        package.xml file.</strong>
3182        </p>
3183        <p>
3184                This task uses the
3185                <code>PEAR_PackageFileManager</code>
3186                class. In order to be maximally flexible, the majority of options are
3187                set generically (using <em>&lt;option&gt;</em> tag) and are set using
3188                <code>PEAR_PackageFileManager::setOptions()</code>
3189                . Use the <em>&lt;mapping&gt;</em> tag to represent complex values
3190                (which are turned into associative arrays and also set using
3191                <code>setOptions()</code>
3192                method).
3193        </p>
3194        <h3>Example</h3>
3195        <pre>
3196&lt;pearpkg name="phing" dir="${build.src.dir}" destFile="${build.base.dir}/package.xml"&gt;
3197&lt;fileset dir=&quot;.&quot;&gt;
3198&nbsp;&nbsp;&lt;include name="**"/&gt;
3199&lt;/fileset&gt;
3200&lt;option name="notes"&gt;Sample release notes here.&lt;/option&gt;
3201&lt;option name="description"&gt;Package description&lt;/option&gt;
3202&lt;option name="summary"&gt;Short description&lt;/option&gt;
3203&lt;option name="version" value="2.0.0b1"/&gt;
3204&lt;option name="state" value="beta"/&gt;
3205 &lt;mapping name="maintainers"&gt;
3206&nbsp;&nbsp;&lt;element&gt;
3207&nbsp;&nbsp;&nbsp;&lt;element key="handle" value="hlellelid"/&gt;
3208&nbsp;&nbsp;&nbsp;&lt;element key="name" value="Hans"/&gt;
3209&nbsp;&nbsp;&nbsp;&lt;element key="email" value="hans@xmpl.org"/&gt;
3210&nbsp;&nbsp;&nbsp;&lt;element key="role" value="lead"/&gt;
3211&nbsp;&nbsp;&lt;/element&gt;
3212&lt;/mapping&gt;
3213&lt;/pearpkg&gt;
3214</pre>
3215        <h3>Attributes</h3>
3216        <table>
3217                <thead>
3218                        <tr>
3219                                <th>Name</th>
3220                                <th>Type</th>
3221                                <th>Description</th>
3222                                <th>Default</th>
3223                                <th>Required</th>
3224                        </tr>
3225                </thead>
3226                <tbody>
3227                        <tr>
3228                                <td>name</td>
3229                                <td>String</td>
3230                                <td>The name of the PEAR package.</td>
3231                                <td>n/a</td>
3232                                <td>Yes</td>
3233                        </tr>
3234                        <tr>
3235                                <td>dir</td>
3236                                <td>String</td>
3237                                <td>The base directory of files to add to package.</td>
3238                                <td>n/a</td>
3239                                <td>Yes</td>
3240                        </tr>
3241                        <tr>
3242                                <td>destFile</td>
3243                                <td>String</td>
3244                                <td>The file to create.</td>
3245                                <td>package.xml in base directory</td>
3246                                <td>No</td>
3247                        </tr>
3248                </tbody>
3249        </table>
3250        <h3>Supported Nested Tags</h3>
3251        <ul>
3252                <li>fileset</li>
3253                <li>option</li>
3254                <li><p>mapping</p>
3255                        <p>
3256                                The &lt;mapping&gt; tag represents a complex data type. You can use
3257                                nested &lt;mapping&gt; (and nested &lt;element&gt; with
3258                                &lt;element&gt; tags) to represent the full complexity of the
3259                                structure. Bear in mind that what you are creating will be mapped to
3260                                an associative array that will be passed in via
3261                                <code>PEAR_PackageFileMaintainer::setOptions()</code>
3262                                .
3263                        </p> <pre>&lt;mapping name="option_name"&gt;
3264    &lt;element key="key_name" value="key_val"/&gt;
3265    &lt;element key="key_name" value="key_val"/&gt;
3266&lt;/mapping&gt;</pre>
3267                </li>
3268        </ul>
3269
3270        <h2>
3271                <a name="PearPackage2Task"></a>PearPackage2Task
3272        </h2>
3273        <p>
3274                With the PearPackage2Task, you can create a <em>version 2</em>
3275                package.xml which can be installed using the PEAR installer. Use this
3276                in conjunction with the <a href="#Tasks.TarTask">TarTask</a> to
3277                completely script the building of a PEAR package.
3278        </p>
3279        <p>
3280                This task uses the PEAR_PackageFileManager2 class. In order to be
3281                maximally flexible, the majority of options are set generically (using
3282                <em>&lt;option&gt;</em> tag) and are set using
3283                PEAR_PackageFileManager::setOptions(). Use the <em>&lt;mapping&gt;</em>
3284                tag to represent complex values.
3285        </p>
3286        <p>
3287                Note that Travis Swicegood has created a more complete implementation
3288                of this functionality which can be found here: <a
3289                        href="http://pear.domain51.com/">pear.domain51.com</a>.
3290        </p>
3291        <h3>Example</h3>
3292        <pre>&lt;pearpkg2 name="phing" dir="${build.src.dir}"&gt;
3293   &lt;option name=&quot;outputdirectory&quot; value=&quot;./build&quot;/&gt;<br />   &lt;option name=&quot;packagefile&quot; value=&quot;package2.xml&quot;/&gt;<br />   &lt;option name=&quot;packagedirectory&quot; value=&quot;./${build.dist.dir}&quot;/&gt;<br />   &lt;option name=&quot;baseinstalldir&quot; value=&quot;${pkg.prefix}&quot;/&gt;<br />   &lt;option name=&quot;channel&quot; value=&quot;my.pear-channel.com&quot;/&gt;<br />   &lt;option name=&quot;summary&quot; value=&quot;${pkg.summary}&quot;/&gt;<br />   &lt;option name=&quot;description&quot; value=&quot;${pkg.description}&quot;/&gt;<br />   &lt;option name=&quot;apiversion&quot; value=&quot;${pkg.version}&quot;/&gt;<br />   &lt;option name=&quot;apistability&quot; value=&quot;beta&quot;/&gt;<br />   &lt;option name=&quot;releaseversion&quot; value=&quot;${pkg.version}&quot;/&gt;<br />   &lt;option name=&quot;releasestability&quot; value=&quot;beta&quot;/&gt;<br />   &lt;option name=&quot;license&quot; value=&quot;none&quot;/&gt;<br />   &lt;option name=&quot;phpdep&quot; value=&quot;5.0.0&quot;/&gt;<br />   &lt;option name=&quot;pearinstallerdep&quot; value=&quot;1.4.6&quot;/&gt;<br />   &lt;option name=&quot;packagetype&quot; value=&quot;php&quot;/&gt;<br />   &lt;option name=&quot;notes&quot; value=&quot;${pkg.relnotes}&quot;/&gt;<br />   &lt;mapping name=&quot;maintainers&quot;&gt;<br />    &lt;element&gt;<br />     &lt;element key=&quot;handle&quot; value=&quot;hlellelid&quot;/&gt;<br />     &lt;element key=&quot;name&quot; value=&quot;Hans&quot;/&gt;<br />     &lt;element key=&quot;email&quot; value=&quot;hans@xmpl.org&quot;/&gt;<br />     &lt;element key=&quot;role&quot; value=&quot;lead&quot;/&gt;<br />    &lt;/element&gt;<br />   &lt;/mapping&gt;<br />&lt;/pearpkg2&gt;</pre>
3294        <h3>Attributes</h3>
3295        <table>
3296                <thead>
3297                        <tr>
3298                                <th>Name</th>
3299                                <th>Type</th>
3300                                <th>Description</th>
3301                                <th>Default</th>
3302                                <th>Required</th>
3303                        </tr>
3304                </thead>
3305                <tbody>
3306                        <tr>
3307                                <td>name</td>
3308                                <td>String</td>
3309                                <td>The name of the PEAR package.</td>
3310                                <td>n/a</td>
3311                                <td>Yes</td>
3312                        </tr>
3313                        <tr>
3314                                <td>dir</td>
3315                                <td>String</td>
3316                                <td>The base directory of files to add to package.</td>
3317                                <td>n/a</td>
3318                                <td>Yes</td>
3319                        </tr>
3320                </tbody>
3321        </table>
3322        <h3>Supported Nested Tags</h3>
3323        <ul>
3324                <li>fileset</li>
3325                <li>
3326                        <p>option</p>
3327
3328                        <p>Available options:</p>
3329                        <table>
3330                                <thead>
3331                                        <tr>
3332                                                <th>Name</th>
3333                                                <th>Type</th>
3334                                                <th>Description</th>
3335                                                <th>Default</th>
3336                                                <th>Required</th>
3337                                        </tr>
3338                                </thead>
3339                                <tbody>
3340                                        <tr>
3341                                                <td>summary</td>
3342                                                <td>String</td>
3343                                                <td></td>
3344                                                <td>n/a</td>
3345                                                <td>Yes</td>
3346                                        </tr>
3347                                        <tr>
3348                                                <td>description</td>
3349                                                <td>String</td>
3350                                                <td></td>
3351                                                <td>n/a</td>
3352                                                <td>Yes</td>
3353                                        </tr>
3354                                        <tr>
3355                                                <td>license</td>
3356                                                <td>String</td>
3357                                                <td></td>
3358                                                <td>n/a</td>
3359                                                <td>Yes</td>
3360                                        </tr>
3361                                        <tr>
3362                                                <td>channel</td>
3363                                                <td>String</td>
3364                                                <td>Channel name (not alias!). Must be registered (<code>
3365                                                                pear channel-discover <em>channel</em>
3366                                                        </code>) on the machine, where the build will be.</td>
3367                                                <td>n/a</td>
3368                                                <td>Yes</td>
3369                                        </tr>
3370                                        <tr>
3371                                                <td>apiversion</td>
3372                                                <td>String</td>
3373                                                <td></td>
3374                                                <td>n/a</td>
3375                                                <td>Yes</td>
3376                                        </tr>
3377                                        <tr>
3378                                                <td>releaseversion</td>
3379                                                <td>String</td>
3380                                                <td></td>
3381                                                <td>n/a</td>
3382                                                <td>Yes</td>
3383                                        </tr>
3384                                        <tr>
3385                                                <td>releasestability</td>
3386                                                <td>String</td>
3387                                                <td>One from: snapshot, devel, alpha, beta or stable.</td>
3388                                                <td>n/a</td>
3389                                                <td>Yes</td>
3390                                        </tr>
3391                                        <tr>
3392                                                <td>apistability</td>
3393                                                <td>String</td>
3394                                                <td>One from: devel, alpha, beta or stable.</td>
3395                                                <td>n/a</td>
3396                                                <td>Yes</td>
3397                                        </tr>
3398                                        <tr>
3399                                                <td>note</td>
3400                                                <td>String</td>
3401                                                <td></td>
3402                                                <td>n/a</td>
3403                                                <td>Yes</td>
3404                                        </tr>
3405                                        <tr>
3406                                                <td>packagetype</td>
3407                                                <td>String</td>
3408                                                <td></td>
3409                                                <td>n/a</td>
3410                                                <td>Yes</td>
3411                                        </tr>
3412                                        <tr>
3413                                                <td>phpdep</td>
3414                                                <td>String</td>
3415                                                <td></td>
3416                                                <td>n/a</td>
3417                                                <td>Yes</td>
3418                                        </tr>
3419                                        <tr>
3420                                                <td>pearinstallerdep</td>
3421                                                <td>String</td>
3422                                                <td></td>
3423                                                <td>n/a</td>
3424                                                <td>Yes</td>
3425                                        </tr>
3426                                </tbody>
3427                        </table>
3428                </li>
3429                <li><p>mapping</p>
3430                        <p>
3431                                The &lt;mapping&gt; tag represents a complex data type. You can use
3432                                nested &lt;mapping&gt; (and nested &lt;element&gt; with
3433                                &lt;element&gt; tags) to represent the full complexity of the
3434                                structure. Bear in mind that what you are creating will be mapped to
3435                                an associative array that will be passed in via
3436                                <code>PEAR_PackageFileMaintainer::setOptions()</code>
3437                                .
3438                        </p> <pre>&lt;mapping name="option_name"&gt;
3439    &lt;element key="key_name" value="key_val"/&gt;
3440    &lt;element key="key_name" value="key_val"/&gt;
3441&lt;/mapping&gt;</pre>
3442
3443                        <p>Available mappings and they structures:</p>
3444                        <ul>
3445                                <li>deps (optional) <br /> see <a
3446                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php">PEAR_PackageFileManager::addDependency()</a>
3447                                        for more info <br /> <br />
3448
3449                                        <table>
3450                                                <thead>
3451                                                        <tr>
3452                                                                <th>Name</th>
3453                                                                <th>Type</th>
3454                                                                <th>Description</th>
3455                                                                <th>Default</th>
3456                                                                <th>Required</th>
3457                                                        </tr>
3458                                                </thead>
3459                                                <tbody>
3460                                                        <tr>
3461                                                                <td>channel</td>
3462                                                                <td>String</td>
3463                                                                <td>Channel name, from package is.</td>
3464                                                                <td>n/a</td>
3465                                                                <td>Yes</td>
3466                                                        </tr>
3467                                                        <tr>
3468                                                                <td>name</td>
3469                                                                <td>String</td>
3470                                                                <td>Package name in channel.</td>
3471                                                                <td>n/a</td>
3472                                                                <td>Yes</td>
3473                                                        </tr>
3474                                                        <tr>
3475                                                                <td>version</td>
3476                                                                <td>String</td>
3477                                                                <td>Minimal version.</td>
3478                                                                <td>n/a</td>
3479                                                                <td>Yes</td>
3480                                                        </tr>
3481                                                        <tr>
3482                                                                <td>max</td>
3483                                                                <td>String</td>
3484                                                                <td>Maximum version.</td>
3485                                                                <td>Same as version.</td>
3486                                                                <td>No</td>
3487                                                        </tr>
3488                                                        <tr>
3489                                                                <td>recommended</td>
3490                                                                <td>String</td>
3491                                                                <td>Recommended version.</td>
3492                                                                <td>Same as version.</td>
3493                                                                <td>No</td>
3494                                                        </tr>
3495                                                </tbody>
3496                                        </table>
3497                                </li>
3498                                <li>extdeps (optional) <br /> see <a
3499                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php">PEAR_PackageFileManager::addDependency()</a>
3500                                        for more info <br /> <br />
3501
3502                                        <table>
3503                                                <thead>
3504                                                        <tr>
3505                                                                <th>Name</th>
3506                                                                <th>Type</th>
3507                                                                <th>Description</th>
3508                                                                <th>Default</th>
3509                                                                <th>Required</th>
3510                                                        </tr>
3511                                                </thead>
3512                                                <tbody>
3513                                                        <tr>
3514                                                                <td>name</td>
3515                                                                <td>String</td>
3516                                                                <td>Package name.</td>
3517                                                                <td>n/a</td>
3518                                                                <td>Yes</td>
3519                                                        </tr>
3520                                                        <tr>
3521                                                                <td>version</td>
3522                                                                <td>String</td>
3523                                                                <td>Minimal version.</td>
3524                                                                <td>n/a</td>
3525                                                                <td>Yes</td>
3526                                                        </tr>
3527                                                        <tr>
3528                                                                <td>max</td>
3529                                                                <td>String</td>
3530                                                                <td>Maximum version.</td>
3531                                                                <td>Same as version.</td>
3532                                                                <td>No</td>
3533                                                        </tr>
3534                                                        <tr>
3535                                                                <td>recommended</td>
3536                                                                <td>String</td>
3537                                                                <td>Recommended version.</td>
3538                                                                <td>Same as version.</td>
3539                                                                <td>No</td>
3540                                                        </tr>
3541                                                </tbody>
3542                                        </table>
3543                                </li>
3544                                <li>maintainers (required at least one) <br /> see <a
3545                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addmaintainer.php">PEAR_PackageFileManager::addMaintainer()</a>
3546                                        for more info <br /> <br />
3547
3548                                        <table>
3549                                                <thead>
3550                                                        <tr>
3551                                                                <th>Name</th>
3552                                                                <th>Type</th>
3553                                                                <th>Description</th>
3554                                                                <th>Default</th>
3555                                                                <th>Required</th>
3556                                                        </tr>
3557                                                </thead>
3558                                                <tbody>
3559                                                        <tr>
3560                                                                <td>handle</td>
3561                                                                <td>String</td>
3562                                                                <td>User identifier in channel.</td>
3563                                                                <td>n/a</td>
3564                                                                <td>Yes</td>
3565                                                        </tr>
3566                                                        <tr>
3567                                                                <td>name</td>
3568                                                                <td>String</td>
3569                                                                <td>Real name.</td>
3570                                                                <td>n/a</td>
3571                                                                <td>Yes</td>
3572                                                        </tr>
3573                                                        <tr>
3574                                                                <td>email</td>
3575                                                                <td>String</td>
3576                                                                <td></td>
3577                                                                <td>n/a</td>
3578                                                                <td>Yes</td>
3579                                                        </tr>
3580                                                        <tr>
3581                                                                <td>role</td>
3582                                                                <td>String</td>
3583                                                                <td>One from: lead, developer, contributor or helper.</td>
3584                                                                <td>n/a</td>
3585                                                                <td>Yes</td>
3586                                                        </tr>
3587                                                </tbody>
3588                                        </table>
3589                                </li>
3590                                <li>replacements (optional) <br /> see <a
3591                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addreplacement.php">PEAR_PackageFileManager::addReplacement()</a>
3592                                        for more info <br /> <br />
3593
3594                                        <table>
3595                                                <thead>
3596                                                        <tr>
3597                                                                <th>Name</th>
3598                                                                <th>Type</th>
3599                                                                <th>Description</th>
3600                                                                <th>Default</th>
3601                                                                <th>Required</th>
3602                                                        </tr>
3603                                                </thead>
3604                                                <tbody>
3605                                                        <tr>
3606                                                                <td>path</td>
3607                                                                <td>String</td>
3608                                                                <td>Relative path of file.</td>
3609                                                                <td>n/a</td>
3610                                                                <td>Yes</td>
3611                                                        </tr>
3612                                                        <tr>
3613                                                                <td>type</td>
3614                                                                <td>String</td>
3615                                                                <td>Variable type, either php-const, pear-config or
3616                                                                        package-info.</td>
3617                                                                <td>n/a</td>
3618                                                                <td>Yes</td>
3619                                                        </tr>
3620                                                        <tr>
3621                                                                <td>from</td>
3622                                                                <td>String</td>
3623                                                                <td>Text to replace in the source file.</td>
3624                                                                <td>n/a</td>
3625                                                                <td>Yes</td>
3626                                                        </tr>
3627                                                        <tr>
3628                                                                <td>to</td>
3629                                                                <td>String</td>
3630                                                                <td>Variable name to use for replacement.</td>
3631                                                                <td>n/a</td>
3632                                                                <td>Yes</td>
3633                                                        </tr>
3634                                                </tbody>
3635                                        </table>
3636                                </li>
3637                        </ul>
3638                </li>
3639        </ul>
3640
3641
3642        <h2>
3643                <a name="PharPackageTask"></a>PharPackageTask
3644        </h2>
3645        <p>
3646                <a href="http://www.php.net/manual/en/book.phar.php" target="_blank">Phar</a>
3647                packages generating with Phing. This task <strong>require <a
3648                        href="http://pecl.php.net/package/phar" target="_blank">PECL's
3649                                Phar</a> </strong> extension to be installed on your system. Phar is built-in in
3650                PHP from 5.3 version.
3651        </p>
3652        <h3>Attributes</h3>
3653        <table>
3654                <thead>
3655                        <tr>
3656                                <th>Name</th>
3657                                <th>Type</th>
3658                                <th>Description</th>
3659                                <th>Default</th>
3660                                <th>Required</th>
3661                        </tr>
3662                </thead>
3663                <tbody>
3664                        <tr>
3665                                <td>basedir</td>
3666                                <td>String</td>
3667                                <td>Base directory, which will be deleted from each included
3668                                        file (from path). Paths with deleted <em>basedir</em> part are
3669                                        local paths in package.</td>
3670                                <td>n/a</td>
3671                                <td>Yes</td>
3672                        </tr>
3673                        <tr>
3674                                <td>destfile</td>
3675                                <td>String</td>
3676                                <td>Destination (output) file. Will be recreated, if exists!</td>
3677                                <td>n/a</td>
3678                                <td>Yes</td>
3679                        </tr>
3680                        <tr>
3681                                <td>compression</td>
3682                                <td>String</td>
3683                                <td>Compression type (gzip, bzip2, none) to apply to the packed
3684                                        files.</td>
3685                                <td>none</td>
3686                                <td>No</td>
3687                        </tr>
3688                        <tr>
3689                                <td>webstub</td>
3690                                <td>String</td>
3691                                <td>Relative path within the phar package to run, if accessed
3692                                        through a web browser.</td>
3693                                <td>n/a</td>
3694                                <td>No</td>
3695                        </tr>
3696                        <tr>
3697                                <td>clistub</td>
3698                                <td>String</td>
3699                                <td>Relative path within the phar package to run, if accessed
3700                                        on the command line.</td>
3701                                <td>n/a</td>
3702                                <td>No</td>
3703                        </tr>
3704                        <tr>
3705                                <td>stub</td>
3706                                <td>String</td>
3707                                <td>A path to a php file that contains a custom stub</td>
3708                                <td>n/a</td>
3709                                <td>No</td>
3710                        </tr>
3711                        <tr>
3712                                <td>alias</td>
3713                                <td>String</td>
3714                                <td>An alias to assign to the phar package</td>
3715                                <td>n/a</td>
3716                                <td>No</td>
3717                        </tr>
3718                        <tr>
3719                                <td>signature</td>
3720                                <td>String</td>
3721                                <td>Signature algorithm (md5, sha1, sha256, sha512), used for
3722                                        this package.</td>
3723                                <td>sha1</td>
3724                                <td>No</td>
3725                        </tr>
3726                </tbody>
3727        </table>
3728        <h3>Supported Nested Tags</h3>
3729        <ul>
3730                <li>fileset</li>
3731                <!--
3732    TODO Describe metadata element.
3733  -->
3734                <li>metadata
3735                        <p /></li>
3736        </ul>
3737        <h3>Examples</h3>
3738        <p>Sample build command:</p>
3739        <pre>&lt;pharpackage
3740  destfile=&quot;./build/package.phar&quot;
3741  basedir=&quot;./&quot;&gt;
3742  &lt;fileset dir=&quot;./classes&quot;&gt;
3743    &lt;include name=&quot;**/**&quot; /&gt;
3744  &lt;/fileset&gt;
3745  &lt;metadata&gt;
3746    &lt;element name=&quot;version&quot; value=&quot;1.0&quot; /&gt;
3747    &lt;element name=&quot;authors&quot;&gt;
3748      &lt;element name=&quot;John Doe&quot;&gt;
3749        &lt;element name=&quot;e-mail&quot; value=&quot;john@example.com&quot; /&gt;
3750      &lt;/element&gt;
3751    &lt;/element&gt;
3752  &lt;/metadata&gt;
3753&lt;/pharpackage&gt;
3754</pre>
3755        <h2>
3756                <a name="PhkPackageTask"></a>PhkPackageTask
3757        </h2>
3758        <p>
3759                This task runs PHK_Creator.phk to build PHK-package. Learn more about
3760                build process in <a
3761                        href="http://phk.tekwire.net/joomla/support/doc/builders_guide.htm"
3762                        target="_blank">PHK Builder's Guide</a>.
3763        </p>
3764        <h3>Attributes</h3>
3765        <table>
3766                <thead>
3767                        <tr>
3768                                <th>Name</th>
3769                                <th>Type</th>
3770                                <th>Description</th>
3771                                <th>Default</th>
3772                                <th>Required</th>
3773                        </tr>
3774                </thead>
3775                <tbody>
3776                        <tr>
3777                                <td>phkcreatorpath</td>
3778                                <td>String</td>
3779                                <td>Path to PHK_Creator.phk.</td>
3780                                <td>n/a</td>
3781                                <td>Yes</td>
3782                        </tr>
3783                        <tr>
3784                                <td>inputdirectory</td>
3785                                <td>String</td>
3786                                <td>Path to directory, that will be packed.</td>
3787                                <td>n/a</td>
3788                                <td>Yes</td>
3789                        </tr>
3790                        <tr>
3791                                <td>outputfile</td>
3792                                <td>String</td>
3793                                <td>Output PHK-file. Directory, where file will be stored, must
3794                                        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
3802                                        files.</td>
3803                                <td>none</td>
3804                                <td>No</td>
3805                        </tr>
3806                        <tr>
3807                                <td>strip</td>
3808                                <td>Boolean</td>
3809                                <td>When true, PHP source file(s) are stripped (filtered
3810                                        through php_strip_whitespace()) before being stored into the
3811                                        archive.</td>
3812                                <td>false</td>
3813                                <td>No</td>
3814                        </tr>
3815                        <tr>
3816                                <td>name</td>
3817                                <td>String</td>
3818                                <td>The package's name (Information only).</td>
3819                                <td>n/a</td>
3820                                <td>No</td>
3821                        </tr>
3822                        <tr>
3823                                <td>webrunscript</td>
3824                                <td>String</td>
3825                                <td>The script to run in web direct access mode. Subfile path.</td>
3826                                <td>n/a</td>
3827                                <td>No</td>
3828                        </tr>
3829                        <tr>
3830                                <td>crccheck</td>
3831                                <td>Boolean</td>
3832                                <td>If true, a CRC check will be forced every time the package
3833                                        is mounted.</td>
3834                                <td>false</td>
3835                                <td>No</td>
3836                        </tr>
3837                </tbody>
3838        </table>
3839        <h3>Supported Nested Tags</h3>
3840        <ul>
3841                <li>webaccess
3842                        <p>
3843                                Collection of <em>path</em> tags (see example below), that will be
3844                                visible outside package in web mode.
3845                        </p></li>
3846        </ul>
3847        <h3>Examples</h3>
3848        <p>Sample build command:</p>
3849        <pre>&lt;phkpackage
3850    phkcreatorpath=&quot;/path/to/PHK_Creator.phk&quot;
3851    inputdirectory=&quot;src&quot;
3852    outputfile=&quot;build/sample-project.phk&quot;
3853    compress=&quot;gzip&quot;
3854    strip=&quot;true&quot;
3855    name=&quot;Sample Project&quot;
3856    webrunscript=&quot;index.php&quot;&gt;
3857    &lt;webaccess&gt;
3858        &lt;path&gt;/&lt;/path&gt;
3859    &lt;/webaccess&gt;
3860&lt;/phkpackage&gt;
3861</pre>
3862        <h2>
3863                <a name="PhpCodeSnifferTask"></a>PhpCodeSnifferTask
3864        </h2>
3865        <p>
3866                This task runs <a href="http://pear.php.net/package/PHP_CodeSniffer"
3867                        target="_blank">PHP_CodeSniffer</a> to detect violations of a defined
3868                set of coding standards.
3869        </p>
3870        <h3>Attributes</h3>
3871        <table>
3872                <thead>
3873                        <tr>
3874                                <th>Name</th>
3875                                <th>Type</th>
3876                                <th>Description</th>
3877                                <th>Default</th>
3878                                <th>Required</th>
3879                        </tr>
3880                </thead>
3881                <tbody>
3882                        <tr>
3883                                <td>standard</td>
3884                                <td>String</td>
3885                                <td>The name of the standard to check for.</td>
3886                                <td>Generic</td>
3887                                <td>No</td>
3888                        </tr>
3889                        <tr>
3890                                <td>format</td>
3891                                <td>String</td>
3892                                <td>The output format. The <em>default</em> format is specified
3893                                        in the task itself. Additionally all report formats of
3894                                        PHP_CodeSniffer can be choosen (ex. <em>checkstyle</em>, <em>full</em>,
3895                                        <em>summary</em>, ...).</td>
3896                                <td>default</td>
3897                                <td>No<br />Ignored if nested <em>formatter</em> elements are
3898                                        supplied.</td>
3899                        </tr>
3900                        <tr>
3901                                <td>showSniffs</td>
3902                                <td>Boolean</td>
3903                                <td>Print the list of used sniffs.</td>
3904                                <td>false</td>
3905                                <td>No</td>
3906                        </tr>
3907                        <tr>
3908                                <td>showWarnings</td>
3909                                <td>Boolean</td>
3910                                <td>Print warnings.</td>
3911                                <td>true</td>
3912                                <td>No</td>
3913                        </tr>
3914                        <tr>
3915                                <td>showSources</td>
3916                                <td>Boolean</td>
3917                                <td>Flag that determines whether to show sources or not.</td>
3918                                <td>true</td>
3919                                <td>No</td>
3920                        </tr>
3921                        <tr>
3922                                <td>docGenerator</td>
3923                                <td>String</td>
3924                                <td>The name of the doc generator (HTML, Text).</td>
3925                                <td>n/a</td>
3926                                <td>No</td>
3927                        </tr>
3928                        <tr>
3929                                <td>docFile</td>
3930                                <td>String</td>
3931                                <td>Path to write output file to. If not set documentation will
3932                                        be written to STDOUT when <em>docGenerator</em> is set.</td>
3933                                <td>n/a</td>
3934                                <td>No</td>
3935                        </tr>
3936                        <tr>
3937                                <td>file</td>
3938                                <td>String</td>
3939                                <td>The file or folder to check (usually the nested tag <em>fileset</em>
3940                                        is used instead).</td>
3941                                <td>false</td>
3942                                <td>Either this attribute or the nested tag <em>fileset</em> is
3943                                        required.</td>
3944                        </tr>
3945                        <tr>
3946                                <td>sniffs</td>
3947                                <td>String</td>
3948                                <td>The list of allowed sniffs (separated by space, comma or
3949                                        semicolon). The sniffs must be part of the choosen standard.</td>
3950                                <td>n/a</td>
3951                                <td>No</td>
3952                        </tr>
3953                        <tr>
3954                                <td>verbosity</td>
3955                                <td>Integer</td>
3956                                <td>The verbosity level of CodeSniffer where level 1 prints
3957                                        progress information and level 2 prints developer debug
3958                                        information.</td>
3959                                <td>0</td>
3960                                <td>No</td>
3961                        </tr>
3962                        <tr>
3963                                <td>tabWidth</td>
3964                                <td>Integer</td>
3965                                <td>Replaces tabs with the given number of spaces. If zero no
3966                                        replacing is done.</td>
3967                                <td>0</td>
3968                                <td>No</td>
3969                        </tr>
3970                        <tr>
3971                                <td>reportWidth</td>
3972                                <td>Integer</td>
3973                                <td>The max. width for the report.</td>
3974                                <td>80</td>
3975                                <td>No</td>
3976                        </tr>
3977                        <tr>
3978                                <td>allowedFileExtensions</td>
3979                                <td>String</td>
3980                                <td>The allowed file extensions (separated by space, comma or
3981                                        semicolon) when a directory is specified in the <em>file</em>
3982                                        attribute.</td>
3983                                <td>php</td>
3984                                <td>No</td>
3985                        </tr>
3986                        <tr>
3987                                <td>ignorePatterns</td>
3988                                <td>String</td>
3989                                <td>The patterns to ignore files and folders (separated by
3990                                        space, comma or semicolon) when a directory is specified in the <em>file</em>
3991                                        attribute.</td>
3992                                <td>n/a</td>
3993                                <td>No</td>
3994                        </tr>
3995                        <tr>
3996                                <td>noSubdirectories</td>
3997                                <td>Boolean</td>
3998                                <td>Do not recurse into subdirectories when a directory is
3999                                        specified in the <em>file</em> attribute.</td>
4000                                <td>false</td>
4001                                <td>No</td>
4002                        </tr>
4003                        <tr>
4004                                <td>haltonerror</td>
4005                                <td>Boolean</td>
4006                                <td>Stop the build process if errors occurred during during the
4007                                        run.</td>
4008                                <td>false</td>
4009                                <td>No</td>
4010                        </tr>
4011                        <tr>
4012                                <td>haltonwarning</td>
4013                                <td>Boolean</td>
4014                                <td>Stop the build process if warnings occurred during the run.</td>
4015                                <td>false</td>
4016                                <td>No</td>
4017                        </tr>
4018                        <tr>
4019                                <td>skipversioncheck</td>
4020                                <td>Boolean</td>
4021                                <td>Skips the version check when the task starts.</td>
4022                                <td>false</td>
4023                                <td>No</td>
4024                        </tr>
4025                </tbody>
4026        </table>
4027        <h3>Supported Nested Tags</h3>
4028        <ul>
4029                <li>fileset
4030                        <p>
4031                                Either this nested tag or the attribute <em>file</em> is required.
4032                        </p></li>
4033                <li>config
4034                        <p>The configuration parameters which are usually loaded from the
4035                                CodeSniffer.conf can be set.</p>
4036                        <h3>Attributes</h3>
4037                        <table>
4038                                <thead>
4039                                        <tr>
4040                                                <th>Name</th>
4041                                                <th>Type</th>
4042                                                <th>Description</th>
4043                                                <th>Default</th>
4044                                                <th>Required</th>
4045                                        </tr>
4046                                </thead>
4047                                <tbody>
4048                                        <tr>
4049                                                <td>name</td>
4050                                                <td>String</td>
4051                                                <td>Name of the configuration parameter.</td>
4052                                                <td>n/a</td>
4053                                                <td>Yes</td>
4054                                        </tr>
4055                                        <tr>
4056                                                <td>value</td>
4057                                                <td>String</td>
4058                                                <td>Value of the configuration parameter.</td>
4059                                                <td>n/a</td>
4060                                                <td>Yes</td>
4061                                        </tr>
4062                                </tbody>
4063                        </table></li>
4064                <li>formatter
4065                        <p>
4066                                The results of the tests can be printed in different formats. Output
4067                                will always be sent to a file, unless you set the <em>usefile</em>
4068                                attribute to <em>false.</em>
4069                        </p>
4070                        <h3>Attributes</h3>
4071                        <table>
4072                                <thead>
4073                                        <tr>
4074                                                <th>Name</th>
4075                                                <th>Type</th>
4076                                                <th>Description</th>
4077                                                <th>Default</th>
4078                                                <th>Required</th>
4079                                        </tr>
4080                                </thead>
4081                                <tbody>
4082                                        <tr>
4083                                                <td>type</td>
4084                                                <td>String</td>
4085                                                <td>The output format. Accepts the the same values as the <em>format</em>
4086                                                        attribute (<em>default</em>, <em>xml</em>, <em>checkstyle</em>, <em>csv</em>,
4087                                                        <em>report</em>, <em>summary</em> &amp; <em>doc</em>).</td>
4088                                                <td>n/a</td>
4089                                                <td>Yes</td>
4090                                        </tr>
4091                                        <tr>
4092                                                <td>usefile</td>
4093                                                <td>Boolean</td>
4094                                                <td>Boolean that determines whether output should be sent to
4095                                                        a file.</td>
4096                                                <td>true</td>
4097                                                <td>No</td>
4098                                        </tr>
4099                                        <tr>
4100                                                <td>outfile</td>
4101                                                <td>String</td>
4102                                                <td>Path to write output file to.</td>
4103                                                <td>n/a</td>
4104                                                <td>Yes, if <em>usefile</em> is <em>true</em>.</td>
4105                                        </tr>
4106                                </tbody>
4107                        </table></li>
4108        </ul>
4109        <h3>Examples</h3>
4110        <p>
4111                Checks all files in the directory <em>file</em> matching the allowed
4112                file extension with the <em>PEAR</em> standard and prints the <em>summary</em>
4113                report without warnings.
4114        </p>
4115        <pre>&lt;phpcodesniffer
4116  standard=&quot;PEAR&quot;
4117  format=&quot;summary&quot;
4118  file=&quot;/path/to/source-files&quot;
4119  allowedFileExtensions=&quot;php php5 inc&quot;/&gt;
4120</pre>
4121        <p>
4122                Checks all matching files in the <em>fileset</em> with the <em>Zend</em>
4123                standard, sets the <em>zend_ca_path</em> configuration which may be
4124                required by one of the sniffs, prints a list of used sniffs and prints
4125                the <em>default</em> report with warnings and the <em>checkstyle</em>
4126                report to <em>/path/to/checkstyle.xml</em>.
4127        </p>
4128        <pre>&lt;phpcodesniffer
4129  standard=&quot;Zend&quot;
4130  showSniffs=&quot;true&quot;
4131  showWarnings=&quot;true&quot;&gt;
4132  &lt;fileset dir=&quot;/path/to/source-files&quot;&gt;
4133    &lt;include name=&quot;**/*.php&quot;/&gt;
4134  &lt;/fileset&gt;
4135  &lt;config name=&quot;zend_ca_path&quot; value=&quot;/path/to/ZendStudio/bin/ZendCodeAnalyzer&quot;/&gt;
4136  &lt;formatter type=&quot;default&quot; usefile=&quot;false&quot;/&gt;
4137  &lt;formatter type=&quot;checkstyle&quot; outfile=&quot;/path/to/checkstyle.xml&quot;/&gt;
4138&lt;/phpcodesniffer&gt;
4139</pre>
4140        <p>
4141                Checks all files in the directory <em>file</em> with the <em>PEAR</em>
4142                standard and prints the <em>checkstyle</em> report without warnings.
4143                It also generates the documentation for the selected coding standard
4144                and writes it to the given file.
4145        </p>
4146        <pre>&lt;phpcodesniffer
4147  standard=&quot;PEAR&quot;
4148  file=&quot;/path/to/source-files&quot;
4149  docGenerator=&quot;HTML&quot;
4150  docFile=&quot;/path/to/doc.html&quot;&gt;
4151  &lt;formatter type=&quot;checkstyle&quot; outfile=&quot;/path/to/checkstyle.xml&quot;/&gt;
4152&lt;/phpcodesniffer&gt;
4153</pre>
4154
4155        <h2>
4156                <a name="PHPCPDTask"></a>PHPCPDTask
4157        </h2>
4158        <p>
4159                This task runs <a href="http://github.com/sebastianbergmann/phpcpd/"
4160                        target="_blank">phpcpd</a>, a Copy/Paste Detector (CPD) for PHP Code.
4161                You need an installed version of this software to use this task.
4162        </p>
4163        <h3>Attributes</h3>
4164        <table>
4165                <thead>
4166                        <tr>
4167                                <th>Name</th>
4168                                <th>Type</th>
4169                                <th>Description</th>
4170                                <th>Default</th>
4171                                <th>Required</th>
4172                        </tr>
4173                </thead>
4174                <tbody>
4175                        <tr>
4176                                <td>file</td>
4177                                <td>String</td>
4178                                <td>Path to source file or path</td>
4179                                <td>n/a</td>
4180                                <td>No</td>
4181                        </tr>
4182                        <tr>
4183                                <td>minTokens</td>
4184                                <td>Integer</td>
4185                                <td>Sets the minimum number of identical tokens (default: 70)</td>
4186                                <td>70</td>
4187                                <td>No</td>
4188                        </tr>
4189                        <tr>
4190                                <td>minLines</td>
4191                                <td>Integer</td>
4192                                <td>Sets the minimum number of identical lines (default: 5)</td>
4193                                <td>5</td>
4194                                <td>No</td>
4195                        </tr>
4196                        <tr>
4197                                <td>format</td>
4198                                <td>String</td>
4199                                <td>The format for the report when no nested formatter is used.</td>
4200                                <td>default</td>
4201                                <td>No</td>
4202                        </tr>
4203                </tbody>
4204        </table>
4205        <h3>Supported Nested Tags</h3>
4206        <ul>
4207                <li>fileset
4208                        <p>
4209                                This nested tag is required when the <em>file</em> attribute is not
4210                                set.
4211                        </p></li>
4212                <li>formatter
4213                        <p>
4214                                The results of the copy/paste scan can be printed in different
4215                                formats. Output will always be sent to a file, unless you set the <em>usefile</em>
4216                                attribute to <em>false</em>.
4217                        </p>
4218                        <h3>Attributes</h3>
4219                        <table>
4220                                <thead>
4221                                        <tr>
4222                                                <th>Name</th>
4223                                                <th>Type</th>
4224                                                <th>Description</th>
4225                                                <th>Default</th>
4226                                                <th>Required</th>
4227                                        </tr>
4228                                </thead>
4229                                <tbody>
4230                                        <tr>
4231                                                <td>type</td>
4232                                                <td>String</td>
4233                                                <td>The output format. Accepts the the same values as the <em>format</em>
4234                                                        attribute (<em>default</em>, <em>pmd</em>).</td>
4235                                                <td>n/a</td>
4236                                                <td>Yes</td>
4237                                        </tr>
4238                                        <tr>
4239                                                <td>useFile</td>
4240                                                <td>Boolean</td>
4241                                                <td>Flag that determines whether output should be sent to a
4242                                                        file or not.</td>
4243                                                <td>true</td>
4244                                                <td>No</td>
4245                                        </tr>
4246                                        <tr>
4247                                                <td>outfile</td>
4248                                                <td>String</td>
4249                                                <td>Path to write output file to.</td>
4250                                                <td>n/a</td>
4251                                                <td>Yes</td>
4252                                        </tr>
4253                                </tbody>
4254                        </table></li>
4255        </ul>
4256        <h3>Examples</h3>
4257        <pre>
4258 &lt;phpcpd file="path/to/source.php"/&gt;
4259</pre>
4260        <p>Checking for copy/paste code in one particular source file.
4261                Sending Default-Report to STDOUT.</p>
4262        <pre>
4263 &lt;phpcpd file="path/to/source"&gt;
4264   &lt;formatter type=&quot;pmd&quot; outfile=&quot;reports/pmd-cpd.xml&quot;/&gt;
4265 &lt;/phpcpd&gt;
4266</pre>
4267        <p>Checking for copy/paste code in files of the given path.</p>
4268        <pre>
4269 &lt;phpcpd&gt;
4270   &lt;fileset dir=&quot;${builddir}&quot; id=&quot;filestocpd&quot;&gt;
4271     &lt;include name=&quot;apps/**/*.php&quot; /&gt;
4272     &lt;include name=&quot;lib/de/**/*.php&quot; /&gt;
4273     &lt;include name=&quot;lib/task/**/*.php&quot; /&gt;
4274     &lt;include name=&quot;lib/services/**/*.php&quot; /&gt;
4275     &lt;include name=&quot;lib/form/**/*.php&quot; /&gt;
4276     &lt;include name=&quot;lib/model/**/*.php&quot; /&gt;
4277   &lt;/fileset&gt;
4278   &lt;formatter type=&quot;pmd&quot; outfile=&quot;reports/pmd-cpd.xml&quot;/&gt;
4279 &lt;/phpcpd&gt;
4280</pre>
4281
4282        <h2>
4283                <a name="PHPMDTask"></a>PHPMDTask
4284        </h2>
4285        <p>
4286                This task runs <a href="http://phpmd.org" target="_blank">phpmd</a>, a
4287                Project Mess Detector (PMD) for PHP Code. You need an installed
4288                version of this software to use this task.
4289        </p>
4290        <h3>Attributes</h3>
4291        <table>
4292                <thead>
4293                        <tr>
4294                                <th>Name</th>
4295                                <th>Type</th>
4296                                <th>Description</th>
4297                                <th>Default</th>
4298                                <th>Required</th>
4299                        </tr>
4300                </thead>
4301                <tbody>
4302                        <tr>
4303                                <td>file</td>
4304                                <td>String</td>
4305                                <td>Path to source file or path</td>
4306                                <td>n/a</td>
4307                                <td>No</td>
4308                        </tr>
4309                        <tr>
4310                                <td>rulesets</td>
4311                                <td>String</td>
4312                                <td>Sets the rulesets used for analyzing the source code</td>
4313                                <td>codesize,unusedcode</td>
4314                                <td>No</td>
4315                        </tr>
4316                        <tr>
4317                                <td>minimumPriority</td>
4318                                <td>Integer</td>
4319                                <td>The minimum priority for rules to load.</td>
4320                                <td>5</td>
4321                                <td>No</td>
4322                        </tr>
4323                        <tr>
4324                                <td>allowedFileExtensions</td>
4325                                <td>String</td>
4326                                <td>Comma-separated list of valid file extensions (without dot)
4327                                        for analyzed files.</td>
4328                                <td>php</td>
4329                                <td>No</td>
4330                        </tr>
4331                        <tr>
4332                                <td>ignorePatterns</td>
4333                                <td>String</td>
4334                                <td>Comma-separated list of directory patterns to ignore.</td>
4335                                <td>.git,.svn,CVS,.bzr,.hg</td>
4336                                <td>No</td>
4337                        </tr>
4338                        <tr>
4339                                <td>format</td>
4340                                <td>String</td>
4341                                <td>The format for the report when no nested formatter is used.</td>
4342                                <td>text</td>
4343                                <td>No</td>
4344                        </tr>
4345                </tbody>
4346        </table>
4347        <h3>Supported Nested Tags</h3>
4348        <ul>
4349                <li>fileset
4350                        <p>
4351                                This nested tag is required when the <em>file</em> attribute is not
4352                                set.
4353                        </p></li>
4354                <li>formatter
4355                        <p>
4356                                The results of the analysis can be printed in different formats.
4357                                Output will always be sent to STDOUT, unless you set the <em>usefile</em>
4358                                attribute to <em>true</em> and set an filename in the <em>outfile</em>
4359                                attribute.
4360                        </p>
4361                        <h3>Attributes</h3>
4362                        <table>
4363                                <thead>
4364                                        <tr>
4365                                                <th>Name</th>
4366                                                <th>Type</th>
4367                                                <th>Description</th>
4368                                                <th>Default</th>
4369                                                <th>Required</th>
4370                                        </tr>
4371                                </thead>
4372                                <tbody>
4373                                        <tr>
4374                                                <td>type</td>
4375                                                <td>String</td>
4376                                                <td>The output format. Accepts the the same values as the <em>format</em>
4377                                                        attribute (<em>xml</em>, <em>html</em>, <em>text</em>).</td>
4378                                                <td>n/a</td>
4379                                                <td>Yes</td>
4380                                        </tr>
4381                                        <tr>
4382                                                <td>usefile</td>
4383                                                <td>Boolean</td>
4384                                                <td>Boolean that determines whether output should be sent to
4385                                                        a file.</td>
4386                                                <td>true</td>
4387                                                <td>No</td>
4388                                        </tr>
4389                                        <tr>
4390                                                <td>outfile</td>
4391                                                <td>String</td>
4392                                                <td>Path to write output file to.</td>
4393                                                <td>n/a</td>
4394                                                <td>Yes</td>
4395                                        </tr>
4396                                </tbody>
4397                        </table></li>
4398        </ul>
4399        <h3>Examples</h3>
4400        <pre>
4401 &lt;phpmd file="path/to/source.php"/&gt;
4402</pre>
4403        <p>Checking syntax of one particular source file. Sending
4404                Text-Report to STDOUT.</p>
4405        <pre>
4406 &lt;phpmd file="path/to/source"&gt;
4407   &lt;formatter type=&quot;html&quot; outfile=&quot;reports/pmd.html&quot;/&gt;
4408 &lt;/phpmd&gt;
4409</pre>
4410        <p>Checking syntax of source files in the given path.</p>
4411        <pre>
4412 &lt;phpmd&gt;
4413   &lt;fileset dir=&quot;${builddir}&quot;&gt;
4414     &lt;include name=&quot;apps/**/*.php&quot; /&gt;
4415     &lt;include name=&quot;lib/de/**/*.php&quot; /&gt;
4416   &lt;/fileset&gt;
4417   &lt;formatter type=&quot;xml&quot; outfile=&quot;reports/pmd.xml&quot;/&gt;
4418 &lt;/phpmd&gt;
4419</pre>
4420        <p>Checking syntax of source files in the fileset pathes.</p>
4421
4422        <h2>
4423                <a name="PhpDependTask"></a>PhpDependTask
4424        </h2>
4425        <p>
4426                This task runs <a href="http://pdepend.org" target="_blank">PHP_Depend</a>,
4427                a software analyzer and metric tool for PHP Code. You need an
4428                installed version of this software to use this task.
4429        </p>
4430        <h3>Attributes</h3>
4431        <table>
4432                <thead>
4433                        <tr>
4434                                <th>Name</th>
4435                                <th>Type</th>
4436                                <th>Description</th>
4437                                <th>Default</th>
4438                                <th>Required</th>
4439                        </tr>
4440                </thead>
4441                <tbody>
4442                        <tr>
4443                                <td>file</td>
4444                                <td>String</td>
4445                                <td>Path to source file or path</td>
4446                                <td>n/a</td>
4447                                <td>No</td>
4448                        </tr>
4449                        <tr>
4450                                <td>configFile</td>
4451                                <td>String</td>
4452                                <td>Path to PHP_Depend configuration file</td>
4453                                <td>n/a</td>
4454                                <td>No</td>
4455                        </tr>
4456                        <tr>
4457                                <td>allowedFileExtensions</td>
4458                                <td>String</td>
4459                                <td>Comma-separated list of valid file extensions (without dot)
4460                                        for analyzed files.</td>
4461                                <td>php,php5</td>
4462                                <td>No</td>
4463                        </tr>
4464                        <tr>
4465                                <td>excludeDirectories</td>
4466                                <td>String</td>
4467                                <td>Comma-separated list of directory patterns to ignore.</td>
4468                                <td>.git,.svn,CVS</td>
4469                                <td>No</td>
4470                        </tr>
4471                        <tr>
4472                                <td>excludePackages</td>
4473                                <td>String</td>
4474                                <td>Comma-separated list of packages to ignore.</td>
4475                                <td>n/a</td>
4476                                <td>No</td>
4477                        </tr>
4478                        <tr>
4479                                <td>withoutAnnotations</td>
4480                                <td>Boolean</td>
4481                                <td>Should the parse ignore doc comment annotations?</td>
4482                                <td>false</td>
4483                                <td>No</td>
4484                        </tr>
4485                        <tr>
4486                                <td>supportBadDocumentation</td>
4487                                <td>Boolean</td>
4488                                <td>Should PHP_Depend treat <b>+global</b> as a regular project
4489                                        package?</td>
4490                                <td>false</td>
4491                                <td>No</td>
4492                        </tr>
4493                        <tr>
4494                                <td>debug</td>
4495                                <td>Boolean</td>
4496                                <td>Enable debug output?</td>
4497                                <td>false</td>
4498                                <td>No</td>
4499                        </tr>
4500                        <tr>
4501                                <td>haltonerror</td>
4502                                <td>Boolean</td>
4503                                <td>Stop the build process if errors occurred during the run.</td>
4504                                <td>false</td>
4505                                <td>No</td>
4506                        </tr>
4507                </tbody>
4508        </table>
4509        <h3>Supported Nested Tags</h3>
4510        <ul>
4511                <li>fileset
4512                        <p>
4513                                This nested tag is required when the <em>file</em> attribute is not
4514                                set.
4515                        </p></li>
4516                <li>logger
4517                        <p>The results of the analysis can be parsed by differed loggers.
4518                                At least one logger is required. Output will always be sent to a
4519                                file.</p>
4520                        <h3>Attributes</h3>
4521                        <table>
4522                                <thead>
4523                                        <tr>
4524                                                <th>Name</th>
4525                                                <th>Type</th>
4526                                                <th>Description</th>
4527                                                <th>Default</th>
4528                                                <th>Required</th>
4529                                        </tr>
4530                                </thead>
4531                                <tbody>
4532                                        <tr>
4533                                                <td>type</td>
4534                                                <td>String</td>
4535                                                <td>The name of the logger. Valid loggers are: <em>jdepend-chart</em>,
4536                                                        <em>jdepend-xml</em>, <em>overview-pyramid</em>, <em>phpunit-xml</em>
4537                                                        and <em>summary-xml</em>.</td>
4538                                                <td>n/a</td>
4539                                                <td>Yes</td>
4540                                        </tr>
4541                                        <tr>
4542                                                <td>outfile</td>
4543                                                <td>String</td>
4544                                                <td>Path to write output file to.</td>
4545                                                <td>n/a</td>
4546                                                <td>Yes</td>
4547                                        </tr>
4548                                </tbody>
4549                        </table></li>
4550                <li>analyzer
4551                        <p>Some additional analyzers can be added to the runner.</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>type</td>
4566                                                <td>String</td>
4567                                                <td>The name of the analyzer. Valid analyzers are: <em>coderank-mode</em>.</td>
4568                                                <td>n/a</td>
4569                                                <td>Yes</td>
4570                                        </tr>
4571                                        <tr>
4572                                                <td>value</td>
4573                                                <td>String</td>
4574                                                <td>The value for the analyzer.</td>
4575                                                <td>n/a</td>
4576                                                <td>Yes</td>
4577                                        </tr>
4578                                </tbody>
4579                        </table></li>
4580        </ul>
4581        <h3>Examples</h3>
4582        <pre>
4583 &lt;phpdepend file="path/to/source"&gt;
4584   &lt;logger type=&quot;phpunit-xml&quot; outfile=&quot;reports/metrics.xml&quot;/&gt;
4585 &lt;/phpdepend&gt;
4586</pre>
4587        <p>Running code analysis for source files in the given path.</p>
4588        <pre>
4589 &lt;phpdepend&gt;
4590   &lt;fileset dir=&quot;${builddir}&quot;&gt;
4591     &lt;include name=&quot;apps/**/*.php&quot; /&gt;
4592     &lt;include name=&quot;lib/de/**/*.php&quot; /&gt;
4593   &lt;/fileset&gt;
4594   &lt;logger type=&quot;jdepend-xml&quot; outfile=&quot;reports/jdepend.xml&quot;/&gt;
4595   &lt;analyzer type=&quot;coderank-mode&quot; value=&quot;method&quot;/&gt;
4596 &lt;/phpdepend&gt;
4597</pre>
4598        <p>
4599                Running code analysis for source files in the fileset pathes with
4600                CodeRank strategy <em>method</em>.
4601        </p>
4602
4603        <h2>
4604                <a name="PhpDocumentorTask"></a>PhpDocumentorTask
4605        </h2>
4606        <p>
4607                This task runs <a href="http://www.phpdoc.org/" target="_blank">phpDocumentor</a>,
4608                an auto-documentation tool for PHP similar to Javadoc.
4609        </p>
4610        <h3>Attributes</h3>
4611        <table>
4612                <thead>
4613                        <tr>
4614                                <th>Name</th>
4615                                <th>Type</th>
4616                                <th>Description</th>
4617                                <th>Default</th>
4618                                <th>Required</th>
4619                        </tr>
4620                </thead>
4621                <tbody>
4622                        <tr>
4623                                <td>title</td>
4624                                <td>String</td>
4625                                <td>Title for browser window / package index.</td>
4626                                <td>n/a</td>
4627                                <td>No</td>
4628                        </tr>
4629                        <tr>
4630                                <td>destdir</td>
4631                                <td>String</td>
4632                                <td>Destination directory for output files.</td>
4633                                <td>n/a</td>
4634                                <td rowspan="2">Yes</td>
4635                        </tr>
4636                        <tr>
4637                                <td>target</td>
4638                                <td>String</td>
4639                                <td>Alias of <em>destdir</em> ("target" is config param used by
4640                                        PhpDocumentor)</td>
4641                                <td>n/a</td>
4642                        </tr>
4643                        <tr>
4644                                <td>output</td>
4645                                <td>String</td>
4646                                <td>Output format (such as <em>HTML:Smarty:PHP</em>).</td>
4647                                <td>n/a</td>
4648                                <td>Yes</td>
4649                        </tr>
4650                        <tr>
4651                                <td>sourcecode</td>
4652                                <td>Boolean</td>
4653                                <td>Generate syntax-highlighted sourcecode file for each file
4654                                        parsed?</td>
4655                                <td>false</td>
4656                                <td>No</td>
4657                        </tr>
4658                        <tr>
4659                                <td>examplesdir</td>
4660                                <td>String</td>
4661                                <td>Path to directory in which to look for example
4662                                        documentation.</td>
4663                                <td>n/a</td>
4664                                <td>No</td>
4665                        </tr>
4666                        <tr>
4667                                <td>parseprivate</td>
4668                                <td>Boolean</td>
4669                                <td>Parse @internal and elements marked private.</td>
4670                                <td>false</td>
4671                                <td>No</td>
4672                        </tr>
4673                        <tr>
4674                                <td>javadocdesc</td>
4675                                <td>Boolean</td>
4676                                <td>JavaDoc-compliant description parsing. Use on/off, default
4677                                        off (more flexibility)</td>
4678                                <td>false</td>
4679                                <td>No</td>
4680                        </tr>
4681                        <tr>
4682                                <td>quiet</td>
4683                                <td>Boolean</td>
4684                                <td>Suppress output to STDOUT.</td>
4685                                <td>false</td>
4686                                <td>No</td>
4687                        </tr>
4688                        <tr>
4689                                <td>packageoutput</td>
4690                                <td>String</td>
4691                                <td>Output documentation only for selected packages. Use a
4692                                        comma-delimited list</td>
4693                                <td>n/a</td>
4694                                <td>No</td>
4695                        </tr>
4696                        <tr>
4697                                <td>ignoretags</td>
4698                                <td>String</td>
4699                                <td>Comma-separated list of tags to ignore (@package,
4700                                        @subpackage, @access and @ignore may not be ignored).</td>
4701                                <td>n/a</td>
4702                                <td>No</td>
4703                        </tr>
4704                        <tr>
4705                                <td>defaultpackagename</td>
4706                                <td>String</td>
4707                                <td>name to use for the default package. If not specified, uses
4708                                        'default'</td>
4709                                <td>n/a</td>
4710                                <td>No</td>
4711                        </tr>
4712                        <tr>
4713                                <td>defaultcategoryname</td>
4714                                <td>String</td>
4715                                <td>name to use for the default category. If not specified,
4716                                        uses 'default'</td>
4717                                <td>n/a</td>
4718                                <td>No</td>
4719                        </tr>
4720                        <tr>
4721                                <td>pear</td>
4722                                <td>Boolean</td>
4723                                <td>Treat parse dirs as PEAR repository? (package is directory,
4724                                        _members are @access private)</td>
4725                                <td>false</td>
4726                                <td>No</td>
4727                        </tr>
4728                        <tr>
4729                                <td>templatebase</td>
4730                                <td>String</td>
4731                                <td>Set base dirctory of all templates for this parse.</td>
4732                                <td>n/a</td>
4733                                <td>No</td>
4734                        </tr>
4735                        <tr>
4736                                <td>undocumentedelements</td>
4737                                <td>Boolean</td>
4738                                <td>Control whether or not warnings will be shown for
4739                                        undocumented elements. Useful for identifying classes and methods
4740                                        that haven't yet been documented.</td>
4741                                <td>false</td>
4742                                <td>No</td>
4743                        </tr>
4744                        <tr>
4745                                <td>customtags</td>
4746                                <td>Boolean</td>
4747                                <td>Custom tags, will be recognized and put in tags[] instead
4748                                        of unknowntags[].</td>
4749                                <td>false</td>
4750                                <td>No</td>
4751                        </tr>
4752                        <tr>
4753                                <td>ignore</td>
4754                                <td>String</td>
4755                                <td>List of files to ignore, separated by ','.</td>
4756                                <td>n/a</td>
4757                                <td>No</td>
4758                        </tr>
4759                </tbody>
4760        </table>
4761        <h3>Supported Nested Tags</h3>
4762        <ul>
4763                <li>fileset - Files that should be included for parsing</li>
4764                <li>projdocfileset - Files that should be treated as
4765                        README/INSTALL/CHANGELOG files</li>
4766        </ul>
4767        <h3>Examples</h3>
4768        <pre>
4769&lt;phpdoc title=&quot;API Documentation&quot;
4770  destdir=&quot;apidocs&quot;
4771  sourcecode=&quot;false&quot;
4772  output=&quot;HTML:Smarty:PHP&quot;&gt;
4773   &lt;fileset dir=&quot;./classes&quot;&gt;
4774      &lt;include name=&quot;**/*.php&quot; /&gt;
4775   &lt;/fileset&gt;
4776   &lt;projdocfileset dir=&quot;.&quot;&gt;
4777      &lt;include name=&quot;README&quot; /&gt;
4778      &lt;include name=&quot;INSTALL&quot; /&gt;
4779      &lt;include name=&quot;CHANGELOG&quot; /&gt;
4780   &lt;/projdocfileset&gt;
4781&lt;/phpdoc&gt;
4782</pre>
4783        <h2>
4784                <a name="PhpDocumentorExternalTask"></a>PhpDocumentorExternalTask
4785        </h2>
4786        <p>
4787                This is the same as the <a href="#PhpDocumentorTask">PhpDocumentorTask</a>
4788                but uses the command line application. Use this as a fallback in case
4789                you're running into troubles when using the phpDocumentor-library with
4790                the PhpDocumentorTask directly, e.g. when you're using Smarty and have
4791                Smarty in your library path too.
4792        </p>
4793        <p>This task supports everything the PhpDocumentorTask supports,
4794                differences are documented below.</p>
4795        <h3>Additional attributes</h3>
4796        <table>
4797                <thead>
4798                        <tr>
4799                                <th>Name</th>
4800                                <th>Type</th>
4801                                <th>Description</th>
4802                                <th>Default</th>
4803                                <th>Required</th>
4804                        </tr>
4805                </thead>
4806                <tbody>
4807                        <tr>
4808                                <td>programpath</td>
4809                                <td>String</td>
4810                                <td>Path to the phpdoc executable (relative or absolute).</td>
4811                                <td>n/a</td>
4812                                <td>No</td>
4813                        </tr>
4814                        <tr>
4815                                <td>sourcepath</td>
4816                                <td>String</td>
4817                                <td>A directory to scan for parsable files. Supports multiple
4818                                        directories separated with a comma.</td>
4819                                <td>n/a</td>
4820                                <td>Yes, if no <tt>&lt;fileset&gt;</tt> is given</td>
4821                        </tr>
4822                </tbody>
4823        </table>
4824        <h3>Unsupported attributes</h3>
4825        <table>
4826                <thead>
4827                        <tr>
4828                                <th>Name</th>
4829                                <th>Description</th>
4830                        </tr>
4831                </thead>
4832                <tbody>
4833                        <tr>
4834                                <td>configdir</td>
4835                                <td>Currently not supported. The attribute will be ignored and
4836                                        a warning messag will be generated. The build continues (to ease
4837                                        when changing an existing phpdoc task) however this may have
4838                                        unexpected side effects.</td>
4839                        </tr>
4840                </tbody>
4841        </table>
4842        <h3>Examples</h3>
4843        <pre>
4844&lt;phpdocext title=&quot;API Documentation&quot;
4845  programpath=&quot;/usr/bin/phpdoc&quot;
4846  destdir=&quot;apidocs&quot;
4847  sourcecode=&quot;false&quot;
4848  output=&quot;HTML:Smarty:PHP&quot;&gt;
4849   &lt;fileset dir=&quot;./classes&quot;&gt;
4850      &lt;include name=&quot;**/*.php&quot; /&gt;
4851   &lt;/fileset&gt;
4852   &lt;projdocfileset dir=&quot;.&quot;&gt;
4853      &lt;include name=&quot;README&quot; /&gt;
4854      &lt;include name=&quot;INSTALL&quot; /&gt;
4855      &lt;include name=&quot;CHANGELOG&quot; /&gt;
4856   &lt;/projdocfileset&gt;
4857&lt;/phpdocext&gt;
4858</pre>
4859
4860        <h2>
4861                <a name="PhpLintTask"></a>PhpLintTask
4862        </h2>
4863        <p>
4864                The <em>PhpLintTask</em> checks syntax (lint) on one or more PHP
4865                source code files.
4866        </p>
4867        <h3>Attributes</h3>
4868        <table>
4869                <thead>
4870                        <tr>
4871                                <th>Name</th>
4872                                <th>Type</th>
4873                                <th>Description</th>
4874                                <th>Default</th>
4875                                <th>Required</th>
4876                        </tr>
4877                </thead>
4878                <tbody>
4879                        <tr>
4880                                <td>file</td>
4881                                <td>String</td>
4882                                <td>Path to source file</td>
4883                                <td>n/a</td>
4884                                <td>No</td>
4885                        </tr>
4886                        <tr>
4887                                <td>haltonfailure</td>
4888                                <td>Boolean</td>
4889                                <td>Stop the build process if the linting process encounters an
4890                                        error.</td>
4891                                <td>false</td>
4892                                <td>No</td>
4893                        </tr>
4894                        <tr>
4895                                <td>errorproperty</td>
4896                                <td>String</td>
4897                                <td>The name of a property that will be set to contain the
4898                                        error string (if any).</td>
4899                                <td>n/a</td>
4900                                <td>No</td>
4901                        </tr>
4902                        <tr>
4903                                <td>interpreter</td>
4904                                <td>string</td>
4905                                <td>Path to alternative PHP interpreter</td>
4906                                <td>Defaults to the <tt>${php.command}</tt> property which is
4907                                        the interpreter used to execute phing itself.</td>
4908                                <td>No</td>
4909                        </tr>
4910                        <tr>
4911                                <td>cachefile</td>
4912                                <td>String</td>
4913                                <td>If set, enables writing of last-modified times to <em>cachefile</em>,
4914                                        to speed up processing of files that rarely change</td>
4915                                <td>none</td>
4916                                <td>No</td>
4917                        </tr>
4918                        <tr>
4919                                <td>level</td>
4920                                <td>String</td>
4921                                <td>Control the level at which phplint reports status messages.
4922                                        One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>,
4923                                        <em>debug</em>.</td>
4924                                <td><em>info</em></td>
4925                                <td>No</td>
4926                        </tr>
4927                        <tr>
4928                                <td>tofile</td>
4929                                <td>String</td>
4930                                <td>File to write list of 'bad files' to.</td>
4931                                <td>n/a</td>
4932                                <td>No</td>
4933                        </tr>
4934                        <tr>
4935                                <td>deprecatedAsError</td>
4936                                <td>Boolean</td>
4937                                <td>Whether to treat deprecated warnings (introduced in PHP
4938                                        5.3) as errors.</td>
4939                                <td>n/a</td>
4940                                <td>false</td>
4941                        </tr>
4942                </tbody>
4943        </table>
4944        <h3>Supported Nested Tags</h3>
4945        <ul>
4946                <li>fileset</li>
4947        </ul>
4948        <h3>Example</h3>
4949        <pre>
4950&lt;phplint file=&quot;path/to/source.php&quot;/&gt;
4951</pre>
4952        <p>Checking syntax of one particular source file.</p>
4953        <pre>
4954&lt;phplint&gt;
4955&nbsp;&nbsp;&lt;fileset dir=&quot;src&quot;&gt;
4956&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.php"/&gt;
4957&nbsp;&nbsp;&lt;/fileset&gt;
4958&lt;/phplint&gt;
4959</pre>
4960        <p>Check syntax of a fileset of source files.</p>
4961        <h2>
4962                <a name="PHPUnitTask"></a>PHPUnitTask
4963        </h2>
4964        <p>
4965                This task runs testcases using the <a href="http://www.phpunit.de/"
4966                        target="_blank">PHPUnit</a> framework. It is a functional port of the
4967                Ant <a href="http://ant.apache.org/manual/OptionalTasks/junit.html"
4968                        target="_blank">JUnit</a> task.
4969        </p>
4970        <p>
4971                <b>NB:</b> the identifiers <i>phpunit2</i> (PHPUnit2Task) and <i>phpunit3</i>
4972                (PHPUnit3Task) have been deprecated!
4973        </p>
4974        <h3>Attributes</h3>
4975        <table>
4976                <thead>
4977                        <tr>
4978                                <th>Name</th>
4979                                <th>Type</th>
4980                                <th>Description</th>
4981                                <th>Default</th>
4982                                <th>Required</th>
4983                        </tr>
4984                </thead>
4985                <tbody>
4986                        <tr>
4987                                <td>printsummary</td>
4988                                <td>Boolean</td>
4989                                <td>Print one-line statistics for each testcase.</td>
4990                                <td>false</td>
4991                                <td>No</td>
4992                        </tr>
4993                        <tr>
4994                                <td>bootstrap</td>
4995                                <td>string</td>
4996                                <td>The name of a bootstrap file that is run before executing
4997                                        the tests.</td>
4998                                <td>none</td>
4999                                <td>No</td>
5000                        </tr>
5001                        <tr>
5002                                <td>codecoverage</td>
5003                                <td>Boolean</td>
5004                                <td>Gather code coverage information while running tests
5005                                        (requires Xdebug).</td>
5006                                <td>false</td>
5007                                <td>No</td>
5008                        </tr>
5009                        <tr>
5010                                <td>haltonerror</td>
5011                                <td>Boolean</td>
5012                                <td>Stop the build process if an error occurs during the test
5013                                        run.</td>
5014                                <td>false</td>
5015                                <td>No</td>
5016                        </tr>
5017                        <tr>
5018                                <td>haltonfailure</td>
5019                                <td>Boolean</td>
5020                                <td>Stop the build process if a test fails (errors are
5021                                        considered failures as well).</td>
5022                                <td>false</td>
5023                                <td>No</td>
5024                        </tr>
5025                        <tr>
5026                                <td>haltonincomplete</td>
5027                                <td>Boolean</td>
5028                                <td>Stop the build process if any incomplete tests are
5029                                        encountered.</td>
5030                                <td>false</td>
5031                                <td>No</td>
5032                        </tr>
5033                        <tr>
5034                                <td>haltonskipped</td>
5035                                <td>Boolean</td>
5036                                <td>Stop the build process if any skipped tests are
5037                                        encountered.</td>
5038                                <td>false</td>
5039                                <td>No</td>
5040                        </tr>
5041                        <tr>
5042                                <td>failureproperty</td>
5043                                <td>String</td>
5044                                <td>Name of property to set (to true) on failure.</td>
5045                                <td>n/a</td>
5046                                <td>No</td>
5047                        </tr>
5048                        <tr>
5049                                <td>errorproperty</td>
5050                                <td>String</td>
5051                                <td>Name of property to set (to true) on error.</td>
5052                                <td>n/a</td>
5053                                <td>No</td>
5054                        </tr>
5055                        <tr>
5056                                <td>incompleteproperty</td>
5057                                <td>String</td>
5058                                <td>Name of property to set (to true) on incomplete tests.</td>
5059                                <td>n/a</td>
5060                                <td>No</td>
5061                        </tr>
5062                        <tr>
5063                                <td>skippedproperty</td>
5064                                <td>String</td>
5065                                <td>Name of property to set (to true) on skipped tests.</td>
5066                                <td>n/a</td>
5067                                <td>No</td>
5068                        </tr>
5069                        <tr>
5070                                <td>usecustomerrorhandler</td>
5071                                <td>Boolean</td>
5072                                <td>Use a custom Phing/PHPUnit error handler to process PHP
5073                                        errors.</td>
5074                                <td>true</td>
5075                                <td>No</td>
5076                        </tr>
5077                </tbody>
5078        </table>
5079        <h3>Supported Nested Tags</h3>
5080        <ul>
5081                <li>formatter
5082                        <p>
5083                                The results of the tests can be printed in different formats. Output
5084                                will always be sent to a file, unless you set the <em>usefile</em>
5085                                attribute to <em>false</em>. The name of the file is predetermined
5086                                by the formatter and can be changed by the <em>outfile</em>
5087                                attribute.
5088                        </p>
5089                        <p>
5090                                There are four predefined formatters - <em>xml</em> and <em>clover</em>
5091                                print the test results in the JUnit and Clover XML formats, the
5092                                other two emit plain text. The <em>brief</em> formatter will only
5093                                print detailed information for testcases that failed, while <em>plain</em>
5094                                emits a short statistics line for all test cases. Custom formatters
5095                                that implement
5096                                phing.tasks.ext.phpunit.formatter.PHPUnitResultFormatter can be
5097                                specified.
5098                        </p>
5099                        <h3>Attributes</h3>
5100                        <table>
5101                                <thead>
5102                                        <tr>
5103                                                <th>Name</th>
5104                                                <th>Type</th>
5105                                                <th>Description</th>
5106                                                <th>Default</th>
5107                                                <th>Required</th>
5108                                        </tr>
5109                                </thead>
5110                                <tbody>
5111                                        <tr>
5112                                                <td>type</td>
5113                                                <td>String</td>
5114                                                <td>Use a predefined formatter (either <em>xml</em>, <em>plain</em>,
5115                                                        <em>clover</em>, or <em>brief</em>).</td>
5116                                                <td>n/a</td>
5117                                                <td rowspan="2">One of these is required.</td>
5118                                        </tr>
5119                                        <tr>
5120                                                <td>classname</td>
5121                                                <td>String</td>
5122                                                <td>Name of a custom formatter class.</td>
5123                                                <td>n/a</td>
5124                                        </tr>
5125                                        <tr>
5126                                                <td>usefile</td>
5127                                                <td>Boolean</td>
5128                                                <td>Boolean that determines whether output should be sent to
5129                                                        a file.</td>
5130                                                <td>true</td>
5131                                                <td>No</td>
5132                                        </tr>
5133                                        <tr>
5134                                                <td>todir</td>
5135                                                <td>String</td>
5136                                                <td>Directory to write the file to.</td>
5137                                                <td>n/a</td>
5138                                                <td>No</td>
5139                                        </tr>
5140                                        <tr>
5141                                                <td>outfile</td>
5142                                                <td>String</td>
5143                                                <td>Filename of the result.</td>
5144                                                <td>Depends on formatter</td>
5145                                                <td>No</td>
5146                                        </tr>
5147                                </tbody>
5148                        </table></li>
5149                <li>batchtest
5150                        <p>
5151                                Define a number of tests based on pattern matching. <em>batchtest</em>
5152                                collects the included files from any number of nested
5153                                &lt;fileset&gt;s. It then generates a lists of classes that are
5154                                (in)directly defined by each PHP file.
5155                        </p>
5156                        <h3>Attributes</h3>
5157                        <table>
5158                                <thead>
5159                                        <tr>
5160                                                <th>Name</th>
5161                                                <th>Type</th>
5162                                                <th>Description</th>
5163                                                <th>Default</th>
5164                                                <th>Required</th>
5165                                        </tr>
5166                                </thead>
5167                                <tbody>
5168                                        <tr>
5169                                                <td>exclude</td>
5170                                                <td>String</td>
5171                                                <td>A list of classes to exclude from the pattern matching.
5172                                                        For example, when you have two baseclasses <em>BaseWebTest</em>
5173                                                        and <em>BaseMathTest</em>, which are included a number of
5174                                                        testcases (and thus added to the list of testclasses), you can
5175                                                        exclude those classes from the list by typing <em>exclude=&quot;BaseWebTest
5176                                                                BaseMathTest&quot;</em>.</td>
5177                                                <td>n/a</td>
5178                                                <td>No</td>
5179                                        </tr>
5180                                        <tr>
5181                                                <td>classpath</td>
5182                                                <td>String</td>
5183                                                <td>Used to define more paths on which - besides the PHP
5184                                                        include_path - to look for the test files.</td>
5185                                                <td>n/a</td>
5186                                                <td>No</td>
5187                                        </tr>
5188                                        <tr>
5189                                                <td>name</td>
5190                                                <td>String</td>
5191                                                <td>The name that is used to create a testsuite from this
5192                                                        batchtest.</td>
5193                                                <td>Phing Batchtest</td>
5194                                                <td>No</td>
5195                                        </tr>
5196                                </tbody>
5197                        </table>
5198                        <h3>Supported Nested Tags</h3>
5199                        <ul>
5200                                <li>fileset</li>
5201                        </ul></li>
5202        </ul>
5203        <h3>Examples</h3>
5204        <pre>&lt;phpunit&gt;
5205  &lt;formatter todir=&quot;reports&quot; type=&quot;xml&quot;/&gt;
5206  &lt;batchtest&gt;
5207    &lt;fileset dir=&quot;tests&quot;&gt;
5208      &lt;include name=&quot;**/*Test*.php&quot;/&gt;
5209      &lt;exclude name=&quot;**/Abstract*.php&quot;/&gt;
5210    &lt;/fileset&gt;
5211  &lt;/batchtest&gt;
5212&lt;/phpunit&gt;
5213</pre>
5214        <p>
5215                Runs all matching testcases in the directory <em>tests</em>, writing
5216                XML results to the directory <em>reports</em>.
5217        </p>
5218        <pre>&lt;phpunit codecoverage=&quot;true&quot; haltonfailure=&quot;true&quot; haltonerror=&quot;true&quot;&gt;
5219  &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot;/&gt;
5220  &lt;batchtest&gt;
5221    &lt;fileset dir=&quot;tests&quot;&gt;
5222      &lt;include name=&quot;**/*Test*.php&quot;/&gt;
5223    &lt;/fileset&gt;
5224  &lt;/batchtest&gt;
5225&lt;/phpunit&gt;
5226</pre>
5227        <p>
5228                Runs all matching testcases in the directory <em>tests</em>, gathers
5229                code coverage information, writing plain text results to the console.
5230                The build process is aborted if a test fails.
5231        </p>
5232        <pre>&lt;phpunit bootstrap=&quot;src/autoload.php&quot;&gt;
5233  &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot;/&gt;
5234  &lt;batchtest&gt;
5235    &lt;fileset dir=&quot;tests&quot;&gt;
5236      &lt;include name=&quot;**/*Test*.php&quot;/&gt;
5237    &lt;/fileset&gt;
5238  &lt;/batchtest&gt;
5239&lt;/phpunit&gt;
5240</pre>
5241        <p>
5242                Runs all matching testcases in the directory <em>tests</em>, writing
5243                plain text results to the console. Additionally, before executing the
5244                tests, the bootstrap file <em>src/autoload.php</em> is loaded.
5245        </p>
5246        <p>
5247                <b>Important note:</b> using a mechanism such as an "AllTests.php"
5248                file to execute testcases will bypass the Phing hooks used for
5249                reporting and counting, and could possibly lead to strange results.
5250                Instead, use one of more fileset's to provide a list of testcases to
5251                execute.
5252        </p>
5253        <h2>
5254                <a name="PHPUnitReport"></a>PHPUnitReport
5255        </h2>
5256        <p>This task transforms PHPUnit xml reports to HTML using XSLT.</p>
5257        <p>
5258                <b>NB:</b> the identifiers <i>phpunit2report</i> (PHPUnit2Report) and
5259                <i>phpunit3report</i> (PHPUnit3Report)have been deprecated!
5260        </p>
5261        <h3>Attributes</h3>
5262        <table>
5263                <thead>
5264                        <tr>
5265                                <th>Name</th>
5266                                <th>Type</th>
5267                                <th>Description</th>
5268                                <th>Default</th>
5269                                <th>Required</th>
5270                        </tr>
5271                </thead>
5272                <tbody>
5273                        <tr>
5274                                <td>infile</td>
5275                                <td>String</td>
5276                                <td>The filename of the XML results file to use.</td>
5277                                <td>testsuites.xml</td>
5278                                <td>No</td>
5279                        </tr>
5280                        <tr>
5281                                <td>format</td>
5282                                <td>String</td>
5283                                <td>The format of the generated report. Must be <em>noframes</em>
5284                                        or <em>frames</em>.</td>
5285                                <td>noframes</td>
5286                                <td>No</td>
5287                        </tr>
5288                        <tr>
5289                                <td>styledir</td>
5290                                <td>String</td>
5291                                <td>The directory where the stylesheets are located. They must
5292                                        conform to the following conventions:
5293                                        <ul>
5294                                                <li>frames format: the stylesheet must be named
5295                                                        phpunit-frames.xsl.</li>
5296                                                <li>noframes format: the stylesheet must be named
5297                                                        phpunit-noframes.xsl.</li>
5298                                        </ul></td>
5299                                <td>n/a</td>
5300                                <td>Yes</td>
5301                        </tr>
5302                        <tr>
5303                                <td>todir</td>
5304                                <td>String</td>
5305                                <td>The directory where the files resulting from the
5306                                        transformation should be written to.</td>
5307                                <td />
5308                                <td>Yes</td>
5309                        </tr>
5310                        <tr>
5311                                <td>usesorttable</td>
5312                                <td>boolean</td>
5313                                <td>Whether to use the sorttable JavaScript library (see <a
5314                                        href="http://www.kryogenix.org/code/browser/sorttable/">http://www.kryogenix.org/code/browser/sorttable/</a>)</td>
5315                                <td>false</td>
5316                                <td>No</td>
5317                        </tr>
5318                </tbody>
5319        </table>
5320        <h3>Examples</h3>
5321        <pre>&lt;phpunitreport infile=&quot;reports/testsuites.xml&quot; 
5322    format=&quot;frames&quot; 
5323    todir=&quot;reports/tests&quot; 
5324    styledir=&quot;/home/phing/etc&quot;/&gt;
5325</pre>
5326        <p>
5327                Generates a framed report in the directory <em>reports/tests</em>
5328                using the file <em>reports/testsuites.xml</em> as input.
5329        </p>
5330        <p>
5331                <b>Important note:</b> testclasses that are not explicitly placed in a
5332                package (by using a '@package' tag in the class-level DocBlock) are
5333                listed under the "default" package.
5334        </p>
5335
5336        <h2>
5337                <a name="S3PutTask"></a>S3PutTask
5338        </h2>
5339        <p>
5340                Uploads an object to Amazon S3. This task requires the PEAR package <a
5341                        href="http://pear.php.net/package/Services_Amazon_S3"
5342                        title="Services_Amazon_S3" target="_blank">Services_Amazon_S3</a>
5343        </p>
5344        <h3>Examples</h3>
5345        <p>Uploading a file</p>
5346        <pre>&lt;s3put source=&quot;/path/to/file.txt&quot; object=&quot;file.txt&quot; bucket=&quot;mybucket&quot; key=&quot;AmazonKey&quot; secret=&quot;AmazonSecret&quot; /&gt;</pre>
5347        <p>You can also define "bucket, key, secret" outside of the task
5348                call:</p>
5349        <pre>
5350&lt;property name=&quot;amazon.key&quot; value=&quot;my_key&quot; /&gt;
5351&lt;property name=&quot;amazon.secret&quot; value=&quot;my_secret&quot; /&gt;
5352&lt;property name=&quot;amazon.bucket&quot; value=&quot;mybucket&quot; /&gt;
5353
5354&lt;s3put source=&quot;/path/to/file.txt&quot; object=&quot;file.txt&quot; /&gt;
5355        </pre>
5356        <p>You can also specify inline content instead of a file to upload:</p>
5357        <pre>
5358&lt;property name=&quot;amazon.key&quot; value=&quot;my_key&quot; /&gt;
5359&lt;property name=&quot;amazon.secret&quot; value=&quot;my_secret&quot; /&gt;
5360&lt;property name=&quot;amazon.bucket&quot; value=&quot;mybucket&quot; /&gt;
5361
5362&lt;s3put content=&quot;Some content here&quot; object=&quot;file.txt&quot; /&gt;
5363        </pre>
5364        <p>It also works with filesets</p>
5365        <pre>
5366&lt;property name=&quot;amazon.key&quot; value=&quot;my_key&quot; /&gt;
5367&lt;property name=&quot;amazon.secret&quot; value=&quot;my_secret&quot; /&gt;
5368&lt;property name=&quot;amazon.bucket&quot; value=&quot;mybucket&quot; /&gt;
5369&lt;s3put&gt;
5370        &lt;fileset dir=&quot;${project.basedir}&quot;&gt;
5371                &lt;include name=&quot;**/*.jpg&quot; /&gt;
5372        &lt;/fileset&gt;
5373&lt;/s3put&gt; 
5374        </pre>
5375        <h3>Attributes</h3>
5376        <table>
5377                <thead>
5378                        <tr>
5379                                <th>Name</th>
5380                                <th>Type</th>
5381                                <th>Description</th>
5382                                <th>Default</th>
5383                                <th>Required</th>
5384                        </tr>
5385                </thead>
5386                <tbody>
5387                        <tr>
5388                                <td>key</td>
5389                                <td>String</td>
5390                                <td>Amazon S3 key</td>
5391                                <td>n/a</td>
5392                                <td>Yes (or defined before task call as: amazon.key)</td>
5393                        </tr>
5394                        <tr>
5395                                <td>secret</td>
5396                                <td>String</td>
5397                                <td>Amazon S3 secret</td>
5398                                <td>n/a</td>
5399                                <td>Yes (or defined before task call as: amazon.secret)</td>
5400                        </tr>
5401                        <tr>
5402                                <td>bucket</td>
5403                                <td>String</td>
5404                                <td>Bucket to store the object in</td>
5405                                <td>n/a</td>
5406                                <td>Yes (or defined before task call as: amazon.bucket)</td>
5407                        </tr>
5408                        <tr>
5409                                <td>content</td>
5410                                <td>String</td>
5411                                <td>Content to store in the object</td>
5412                                <td>n/a</td>
5413                                <td>Yes (or source or fileset)</td>
5414                        </tr>
5415                        <tr>
5416                                <td>source</td>
5417                                <td>String</td>
5418                                <td>Where to read content for the object from</td>
5419                                <td>n/a</td>
5420                                <td>Yes (or content or fileset)</td>
5421                        </tr>
5422                        <tr>
5423                                <td>object</td>
5424                                <td>String</td>
5425                                <td>Object name</td>
5426                                <td>n/a</td>
5427                                <td>Yes (unless fileset)</td>
5428                        </tr>
5429                </tbody>
5430        </table>
5431
5432        <h3>Supported Nested Tags</h3>
5433        <ul>
5434                <li>fileset</li>
5435        </ul>
5436
5437        <h2>
5438                <a name="S3GetTask"></a>S3GetTask
5439        </h2>
5440        <p>
5441                Downloads an object from Amazon S3. This task requires the PEAR
5442                package <a href="http://pear.php.net/package/Services_Amazon_S3"
5443                        title="Services_Amazon_S3" target="_blank">Services_Amazon_S3</a>
5444        </p>
5445        <h3>Examples</h3>
5446        <p>Downloading an object</p>
5447        <pre>
5448&lt;s3get object=&quot;file.txt&quot; target=&quot;${project.basedir}&quot; bucket=&quot;mybucket&quot; key=&quot;AmazonKey&quot; secret=&quot;AmazonSecret&quot; /&gt;
5449                        </pre>
5450        <p>You can also define "bucket, key, secret" outside of the task
5451                call:</p>
5452        <pre>
5453&lt;property name=&quot;amazon.key&quot; value=&quot;my_key&quot; /&gt;
5454&lt;property name=&quot;amazon.secret&quot; value=&quot;my_secret&quot; /&gt;
5455&lt;property name=&quot;amazon.bucket&quot; value=&quot;mybucket&quot; /&gt;
5456
5457&lt;s3get object=&quot;file.txt&quot; target=&quot;${project.basedir}&quot; /&gt;
5458                        </pre>
5459        <h3>Attributes</h3>
5460        <table>
5461                <thead>
5462                        <tr>
5463                                <th>Name</th>
5464                                <th>Type</th>
5465                                <th>Description</th>
5466                                <th>Default</th>
5467                                <th>Required</th>
5468                        </tr>
5469                </thead>
5470                <tbody>
5471                        <tr>
5472                                <td>key</td>
5473                                <td>String</td>
5474                                <td>Amazon S3 key</td>
5475                                <td>n/a</td>
5476                                <td>Yes (or defined before task call as: amazon.key)</td>
5477                        </tr>
5478                        <tr>
5479                                <td>secret</td>
5480                                <td>String</td>
5481                                <td>Amazon S3 secret</td>
5482                                <td>n/a</td>
5483                                <td>Yes (or defined before task call as: amazon.secret)</td>
5484                        </tr>
5485                        <tr>
5486                                <td>bucket</td>
5487                                <td>String</td>
5488                                <td>Bucket containing the object</td>
5489                                <td>n/a</td>
5490                                <td>Yes (or defined before task call as: amazon.bucket)</td>
5491                        </tr>
5492                        <tr>
5493                                <td>object</td>
5494                                <td>String</td>
5495                                <td>Object name</td>
5496                                <td>n/a</td>
5497                                <td>Yes</td>
5498                        </tr>
5499                        <tr>
5500                                <td>target</td>
5501                                <td>String</td>
5502                                <td>Where to store the object after download</td>
5503                                <td>n/a</td>
5504                                <td>Yes</td>
5505                        </tr>
5506                </tbody>
5507        </table>
5508
5509        <h2>
5510                <a name="ScpTask"></a>ScpTask
5511        </h2>
5512        <p>
5513                The <em>ScpTask</em> copies files to and from a remote host using scp.
5514                This task requires the <a href="http://pecl.php.net/package/ssh2"
5515                        target="_blank">PHP SSH2 extension</a> to function.
5516        </p>
5517        <h3>Examples</h3>
5518        <pre>&lt;scp username=&quot;john&quot; password=&quot;smith&quot;
5519host=&quot;webserver&quot; fetch=&quot;true&quot;
5520todir=&quot;/home/john/backup&quot;
5521file=&quot;/www/htdocs/test.html&quot; /&gt;</pre>
5522        <p>Fetches a single file from the remote server.</p>
5523
5524        <pre>&lt;scp username=&quot;john&quot; password=&quot;smith&quot;
5525host=&quot;webserver&quot;
5526todir=&quot;/www/htdocs/&quot;
5527file=&quot;/home/john/dev/test.html&quot; /&gt;</pre>
5528        <p>Copies a single file to the remote server.</p>
5529
5530        <pre>&lt;scp username=&quot;john&quot; password=&quot;smith&quot;
5531host=&quot;webserver&quot; todir=&quot;/www/htdocs/project/&quot;&gt;
5532    &lt;fileset dir=&quot;test&quot;&gt;
5533        &lt;include name=&quot;*.html&quot; /&gt;
5534    &lt;/fileset&gt;
5535&lt;/scp&gt;</pre>
5536        <p>Copies multiple files to the remote server.</p>
5537
5538        <h3>Attributes</h3>
5539        <table>
5540                <thead>
5541                        <tr>
5542                                <th>Name</th>
5543                                <th>Type</th>
5544                                <th>Description</th>
5545                                <th>Default</th>
5546                                <th>Required</th>
5547                        </tr>
5548                </thead>
5549                <tbody>
5550                        <tr>
5551                                <td>host</td>
5552                                <td>String</td>
5553                                <td>Remote host</td>
5554                                <td>none</td>
5555                                <td>Yes</td>
5556                        </tr>
5557                        <tr>
5558                                <td>port</td>
5559                                <td>Integer</td>
5560                                <td>Remote port</td>
5561                                <td>22</td>
5562                                <td>No</td>
5563                        </tr>
5564                        <tr>
5565                                <td>username</td>
5566                                <td>String</td>
5567                                <td>Username to use for the connection</td>
5568                                <td>none</td>
5569                                <td>Yes</td>
5570                        </tr>
5571                        <tr>
5572                                <td>password</td>
5573                                <td>String</td>
5574                                <td>Password to use for the connection</td>
5575                                <td>none</td>
5576                                <td>No</td>
5577                        </tr>
5578                        <tr>
5579                                <td>pubkeyfile</td>
5580                                <td>String</td>
5581                                <td>Public key file to use for the connection</td>
5582                                <td>none</td>
5583                                <td>No</td>
5584                        </tr>
5585                        <tr>
5586                                <td>privkeyfile</td>
5587                                <td>String</td>
5588                                <td>Private key file to use for the connection</td>
5589                                <td>none</td>
5590                                <td>No</td>
5591                        </tr>
5592                        <tr>
5593                                <td>privkeyfilepassphrase</td>
5594                                <td>String</td>
5595                                <td>Private key file passphrase to use for the connection</td>
5596                                <td>none</td>
5597                                <td>No</td>
5598                        </tr>
5599                        <tr>
5600                                <td>autocreate</td>
5601                                <td>Boolean</td>
5602                                <td>Whether to autocreate remote directories</td>
5603                                <td>true</td>
5604                                <td>No</td>
5605                        </tr>
5606                        <tr>
5607                                <td>todir</td>
5608                                <td>String</td>
5609                                <td>Directory to put file(s) in</td>
5610                                <td>none</td>
5611                                <td>No</td>
5612                        </tr>
5613                        <tr>
5614                                <td>file</td>
5615                                <td>String</td>
5616                                <td>Filename to use</td>
5617                                <td>none</td>
5618                                <td>No</td>
5619                        </tr>
5620                        <tr>
5621                                <td>fetch</td>
5622                                <td>Boolean</td>
5623                                <td>Whether to fetch (instead of copy to) the file</td>
5624                                <td>false</td>
5625                                <td>No</td>
5626                        </tr>
5627                        <tr>
5628                                <td>level</td>
5629                                <td>String</td>
5630                                <td>Control the level at which the task reports status
5631                                        messages. One of <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>,
5632                                        <em>debug</em>.</td>
5633                                <td><em>verbose</em></td>
5634                                <td>No</td>
5635                        </tr>
5636                </tbody>
5637        </table>
5638        <h3>Supported Nested Tags</h3>
5639        <ul>
5640                <li>fileset</li>
5641        </ul>
5642
5643        <h2>
5644                <a name="SshTask"></a>SshTask
5645        </h2>
5646        <p>
5647                The <em>ScpTask</em> executes commands on a remote host using ssh..
5648                This task requires the <a href="http://pecl.php.net/package/ssh2"
5649                        target="_blank">PHP SSH2 extension</a> to function.
5650        </p>
5651        <h3>Examples</h3>
5652        <pre>&lt;ssh username=&quot;john&quot; password=&quot;smith&quot;
5653host=&quot;webserver&quot; command=&quot;ls&quot; /&gt;</pre>
5654        <p>Executes a single command on the remote server.</p>
5655
5656        <h3>Attributes</h3>
5657        <table>
5658                <thead>
5659                        <tr>
5660                                <th>Name</th>
5661                                <th>Type</th>
5662                                <th>Description</th>
5663                                <th>Default</th>
5664                                <th>Required</th>
5665                        </tr>
5666                </thead>
5667                <tbody>
5668                        <tr>
5669                                <td>host</td>
5670                                <td>String</td>
5671                                <td>Remote host</td>
5672                                <td>none</td>
5673                                <td>Yes</td>
5674                        </tr>
5675                        <tr>
5676                                <td>port</td>
5677                                <td>Integer</td>
5678                                <td>Remote port</td>
5679                                <td>22</td>
5680                                <td>No</td>
5681                        </tr>
5682                        <tr>
5683                                <td>username</td>
5684                                <td>String</td>
5685                                <td>Username to use for the connection</td>
5686                                <td>none</td>
5687                                <td>Yes</td>
5688                        </tr>
5689                        <tr>
5690                                <td>password</td>
5691                                <td>String</td>
5692                                <td>Password to use for the connection</td>
5693                                <td>none</td>
5694                                <td>No</td>
5695                        </tr>
5696                        <tr>
5697                                <td>pubkeyfile</td>
5698                                <td>String</td>
5699                                <td>Public key file to use for the connection</td>
5700                                <td>none</td>
5701                                <td>No</td>
5702                        </tr>
5703                        <tr>
5704                                <td>privkeyfile</td>
5705                                <td>String</td>
5706                                <td>Private key file to use for the connection</td>
5707                                <td>none</td>
5708                                <td>No</td>
5709                        </tr>
5710                        <tr>
5711                                <td>privkeyfilepassphrase</td>
5712                                <td>String</td>
5713                                <td>Private key file passphrase to use for the connection</td>
5714                                <td>none</td>
5715                                <td>No</td>
5716                        </tr>
5717                        <tr>
5718                                <td>command</td>
5719                                <td>String</td>
5720                                <td>Command to execute on the remote server</td>
5721                                <td>none</td>
5722                                <td>Yes</td>
5723                        </tr>
5724                        <tr>
5725                                <td>property</td>
5726                                <td>String</td>
5727                                <td>The name of the property to capture (any) output of the
5728                                        command</td>
5729                                <td>none</td>
5730                                <td>No</td>
5731                        </tr>
5732                        <tr>
5733                                <td>display</td>
5734                                <td>Boolean</td>
5735                                <td>Whether to display the output of the command</td>
5736                                <td>true</td>
5737                                <td>No</td>
5738                        </tr>
5739                </tbody>
5740        </table>
5741
5742        <h2>
5743                <a name="SimpleTestTask"></a>SimpleTestTask
5744        </h2>
5745        <p>
5746                This task runs testcases using the <a
5747                        href="http://www.simpletest.org/" target="_blank">SimpleTest</a>
5748                framework.
5749        </p>
5750        <h3>Attributes</h3>
5751        <table>
5752                <thead>
5753                        <tr>
5754                                <th>Name</th>
5755                                <th>Type</th>
5756                                <th>Description</th>
5757                                <th>Default</th>
5758                                <th>Required</th>
5759                        </tr>
5760                </thead>
5761                <tbody>
5762                        <tr>
5763                                <td>printsummary</td>
5764                                <td>Boolean</td>
5765                                <td>Print one-line statistics for each testcase.</td>
5766                                <td>false</td>
5767                                <td>No</td>
5768                        </tr>
5769                        <tr>
5770                                <td>haltonerror</td>
5771                                <td>Boolean</td>
5772                                <td>Stop the build process if an error occurs during the test
5773                                        run.</td>
5774                                <td>false</td>
5775                                <td>No</td>
5776                        </tr>
5777                        <tr>
5778                                <td>haltonfailure</td>
5779                                <td>Boolean</td>
5780                                <td>Stop the build process if a test fails (errors are
5781                                        considered failures as well).</td>
5782                                <td>false</td>
5783                                <td>No</td>
5784                        </tr>
5785                        <tr>
5786                                <td>failureproperty</td>
5787                                <td>String</td>
5788                                <td>Name of property to set (to true) on failure.</td>
5789                                <td>n/a</td>
5790                                <td>No</td>
5791                        </tr>
5792                        <tr>
5793                                <td>errorproperty</td>
5794                                <td>String</td>
5795                                <td>Name of property to set (to true) on error.</td>
5796                                <td>n/a</td>
5797                                <td>No</td>
5798                        </tr>
5799                        <tr>
5800                                <td>debug</td>
5801                                <td>Boolean</td>
5802                                <td>Switch debugging on/off</td>
5803                                <td>false</td>
5804                                <td>No</td>
5805                        </tr>
5806                </tbody>
5807        </table>
5808        <h3>Supported Nested Tags</h3>
5809        <ul>
5810                <li>formatter
5811                        <p>
5812                                The results of the tests can be printed in different formats. Output
5813                                will always be sent to a file, unless you set the <em>usefile</em>
5814                                attribute to <em>false</em>. The name of the file is predetermined
5815                                by the formatter and can be changed by the <em>outfile</em>
5816                                attribute.
5817                        </p>
5818                        <p>There are three predefined formatters - one prints the test
5819                                results in XML format, the other emits plain text. The formatter
5820                                named brief will only print detailed information for testcases that
5821                                failed, while plain gives a little statistics line for all test
5822                                cases. Custom formatters that implement
5823                                phing.tasks.ext.PHPUnitResultFormatter can be specified.</p>
5824                        <p>If you use the XML formatter, it may not include the same
5825                                output that your tests have written as some characters are illegal
5826                                in XML documents and will be dropped.</p>
5827                        <h3>Attributes</h3>
5828                        <table>
5829                                <thead>
5830                                        <tr>
5831                                                <th>Name</th>
5832                                                <th>Type</th>
5833                                                <th>Description</th>
5834                                                <th>Default</th>
5835                                                <th>Required</th>
5836                                        </tr>
5837                                </thead>
5838                                <tbody>
5839                                        <tr>
5840                                                <td>type</td>
5841                                                <td>String</td>
5842                                                <td>Use a predefined formatter (either <em>xml</em>, <em>plain</em>,
5843                                                        or <em>summary</em>).</td>
5844                                                <td>n/a</td>
5845                                                <td rowspan="2">One of these is required.</td>
5846                                        </tr>
5847                                        <tr>
5848                                                <td>classname</td>
5849                                                <td>String</td>
5850                                                <td>Name of a custom formatter class.</td>
5851                                                <td>n/a</td>
5852                                        </tr>
5853                                        <tr>
5854                                                <td>usefile</td>
5855                                                <td>Boolean</td>
5856                                                <td>Boolean that determines whether output should be sent to
5857                                                        a file.</td>
5858                                                <td>true</td>
5859                                                <td>No</td>
5860                                        </tr>
5861                                        <tr>
5862                                                <td>todir</td>
5863                                                <td>String</td>
5864                                                <td>Directory to write the file to.</td>
5865                                                <td>n/a</td>
5866                                                <td>No</td>
5867                                        </tr>
5868                                        <tr>
5869                                                <td>outfile</td>
5870                                                <td>String</td>
5871                                                <td>Filename of the result.</td>
5872                                                <td>Depends on formatter</td>
5873                                                <td>No</td>
5874                                        </tr>
5875                                </tbody>
5876                        </table></li>
5877                <li>fileset</li>
5878        </ul>
5879        <h3>Examples</h3>
5880        <pre>&lt;simpletest&gt;
5881  &lt;formatter type=&quot;plain&quot;/&gt;
5882  &lt;fileset dir=&quot;tests&quot;&gt;
5883    &lt;include name=&quot;**/*Test*.php&quot;/&gt;
5884    &lt;exclude name=&quot;**/Abstract*.php&quot;/&gt;
5885  &lt;/fileset&gt;
5886&lt;/simpletest&gt;
5887</pre>
5888        <p>
5889                Runs all matching testcases in the directory <em>tests</em>, writing
5890                plain text results to the console.
5891        </p>
5892        <pre>&lt;simpletest haltonfailure=&quot;true&quot; haltonerror=&quot;true&quot;&gt;
5893  &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot;/&gt;
5894  &lt;fileset dir=&quot;tests&quot;&gt;
5895    &lt;include name=&quot;**/*Test*.php&quot;/&gt;
5896  &lt;/fileset&gt;
5897&lt;/simpletest&gt;
5898</pre>
5899        <p>
5900                Runs all matching testcases in the directory <em>tests</em>, writing
5901                plain text results to the console. The build process is aborted if a
5902                test fails.
5903        </p>
5904        <h2>
5905                <a name="SvnCheckoutTask"></a>SvnCheckoutTask
5906        </h2>
5907        <p>
5908                The <em>SvnCheckoutTask</em> checks out a Subversion repository to a
5909                local directory.
5910        </p>
5911        <h3>Examples</h3>
5912        <pre>&lt;svncheckout
5913   svnpath=&quot;/usr/bin/svn&quot;
5914   username="anony"
5915   password="anony"
5916   nocache="true"
5917   repositoryurl=&quot;svn://localhost/project/trunk/&quot;
5918   todir=&quot;/home/user/svnwc&quot;/&gt;
5919</pre>
5920        <pre>&lt;svncheckout
5921   svnpath=&quot;C:/Subversion/bin/svn.exe&quot;
5922   repositoryurl=&quot;svn://localhost/project/trunk/&quot;
5923   todir=&quot;C:/projects/svnwc&quot;/&gt;
5924</pre>
5925        <h3>Attributes</h3>
5926        <table>
5927                <thead>
5928                        <tr>
5929                                <th>Name</th>
5930                                <th>Type</th>
5931                                <th>Description</th>
5932                                <th>Default</th>
5933                                <th>Required</th>
5934                        </tr>
5935                </thead>
5936                <tbody>
5937                        <tr>
5938                                <td>svnpath</td>
5939                                <td>String</td>
5940                                <td>Path to Subversion binary</td>
5941                                <td>/usr/bin/svn</td>
5942                                <td>No</td>
5943                        </tr>
5944                        <tr>
5945                                <td>repositoryurl</td>
5946                                <td>String</td>
5947                                <td>URL of SVN repository</td>
5948                                <td>none</td>
5949                                <td>Yes</td>
5950                        </tr>
5951                        <tr>
5952                                <td>username</td>
5953                                <td>String</td>
5954                                <td>A username used to connect to the SVN server</td>
5955                                <td>none</td>
5956                                <td>No</td>
5957                        </tr>
5958                        <tr>
5959                                <td>password</td>
5960                                <td>String</td>
5961                                <td>A password used to connect to the SVN server</td>
5962                                <td>none</td>
5963                                <td>No</td>
5964                        </tr>
5965                        <tr>
5966                                <td>nocache</td>
5967                                <td>Boolean</td>
5968                                <td>Connection credentials will not be cached</td>
5969                                <td>False</td>
5970                                <td>No</td>
5971                        </tr>
5972                        <tr>
5973                                <td>todir</td>
5974                                <td>String</td>
5975                                <td>Path to export to</td>
5976                                <td>none</td