PEAR2_Pyrus_DeveloperPEAR2_Pyrus_Developer-0.4.0/customcommand/pear2.php.net/PEAR2_Pyrus_Developer/commands.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
<?xml version="1.0" encoding="UTF-8"?>
<commands version="2.0" xmlns="http://pear2.php.net/dtd/customcommand-2.0">
 <command>
  <name>make</name>
  <class>PEAR2\Pyrus\Developer\PackageFile\Commands</class>
  <function>makePackageXml</function>
  <autoloadpath></autoloadpath>
  <summary>Create or update a package.xml from a standard PEAR2 directory layout</summary>
  <shortcut>mk</shortcut>
  <options>
   <option>
    <name>nocompatible</name>
    <shortopt>n</shortopt>
    <type><bool/></type>
    <doc>Do not generate package_compatible.xml</doc>
   </option>
   <option>
    <name>packagexmlsetup</name>
    <shortopt>s</shortopt>
    <type><bool/></type>
    <doc>php file to execute that does customization of the package.xml</doc>
   </option>
   <option>
    <name>scanoptions</name>
    <shortopt>o</shortopt>
    <type><bool/></type>
    <doc>php file to execute that does customization of the package.xml scanning</doc>
   </option>
   <option>
    <name>package</name>
    <shortopt>p</shortopt>
    <type><string/></type>
    <doc>also create a package release.  value should be a comma-delimited list of formats desired</doc>
   </option>
   <option>
    <name>stub</name>
    <shortopt>u</shortopt>
    <type><string/></type>
    <doc>Path to stub for phar archive (ignored if --package not passed)</doc>
   </option>
   <option>
    <name>extrasetup</name>
    <shortopt>e</shortopt>
    <type><string/></type>
    <doc>Path to script with extra needed setup (ignored if --package not passed)</doc>
   </option>
  </options>
  <arguments>
   <argument>
    <name>packagename</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>Name of the package to create, default is grabbed from existing package.xml.</doc>
   </argument>
   <argument>
    <name>channel</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>Name of the channel of the package to create, default is grabbed from existing package.xml or pear2.php.net.</doc>
   </argument>
   <argument>
    <name>dir</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>path to directory to make the packagefile for.</doc>
   </argument>
  </arguments>
  <doc>Make a package.xml file from a standard PEAR2 directory layout.

This command looks for these standard files:

CREDITS, README, RELEASE-X.Y.Z (where X.Y.Z is the release version)
API-X.Y.Z (where X.Y.Z is the API version)

and for a standard directory layout of

src/             PHP files
data/            Data files
tests/           Test files
doc/             Documentation files
examples/        Example files (documentation)
scripts/         Executable files, scripts
www/             Web files
customrole/      Custom installer role xml definition files
customtask/      Custom installer task xml definition files
customcommand/   Custom command xml definition files

The CREDITS file must have this format:

;; comments ignored
Maintainer One [handle1] &lt;email@example.com&gt; (role)
Maintainer Two [handle2] &lt;email@example.com&gt; (role)

Where role is one of lead, developer, contributor, helper.

The first line of README is used as the summary of the package.
RELEASE-X.Y.Z is used as the release notes.

if --packagexmlsetup is specified, the script should work with variable
$package for modifying the package.xml, and $compatible for the compatible
one (if present).  If --packagexmlsetup is not specified, and packagexmlsetup.php
exists in the same directory where the package.xml will go, it will be used.

if --package is specified, it should be a comma-delimited list of package formats,
such as --package=phar,tar,zip
  </doc>
 </command>
 <command>
  <name>pickle</name>
  <class>PEAR2\Pyrus\Developer\PackageFile\Commands</class>
  <function>makePECLPackage</function>
  <autoloadpath></autoloadpath>
  <summary>Create or update a package.xml and then package a PECL extension release</summary>
  <shortcut>pi</shortcut>
  <options>
    <option>
    <name>donotpackage</name>
    <shortopt>n</shortopt>
    <type><bool/></type>
    <doc>Generate package.xml only, do not package a release</doc>
   </option>
  </options>
  <arguments>
   <argument>
    <name>packagename</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>Name of the package to create.  If blank, the name is drawn from existing package.xml</doc>
   </argument>
   <argument>
    <name>channel</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>Name of the channel of the package to create, default is pecl.php.net or whatever is in package.xml.</doc>
   </argument>
   <argument>
    <name>dir</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>path to Package directory, default is the current directory.</doc>
   </argument>
   <argument>
    <name>extension</name>
    <multiple>1</multiple>
    <optional>1</optional>
    <doc>source file extension (default is c, cc, h, m4, w32, re, y, l, frag).</doc>
   </argument>
  </arguments>
  <doc>Create or update a package.xml and then package a PECL extension release.

This command looks for these standard files:

CREDITS, README, RELEASE-X.Y.Z (where X.Y.Z is the release version),
API-X.Y.Z (where X.Y.Z is the API version)

and for a standard directory layout of

/                Extension source files
data/            Data files
tests/           Test files
doc/             Documentation files
examples/        Example files (documentation)

The CREDITS file must have this format:

;; comments ignored
Maintainer One [handle1] &lt;email@example.com&gt; (role)
Maintainer Two [handle2] &lt;email@example.com&gt; (role)

Where role is one of lead, developer, contributor, helper.

The first line of README is used as the summary of the package.
RELEASE-X.Y.Z is used as the release notes.
  </doc>
 </command>
 <command>
  <name>package</name>
  <class>PEAR2\Pyrus\Developer\PackageFile\Commands</class>
  <function>package</function>
  <autoloadpath></autoloadpath>
  <summary>Create a release from an existing package.xml</summary>
  <shortcut>p</shortcut>
  <options>
   <option>
    <name>phar</name>
    <shortopt>p</shortopt>
    <type><bool/></type>
    <doc>Create a phar archive</doc>
   </option>
   <option>
    <name>tgz</name>
    <shortopt>g</shortopt>
    <type><bool/></type>
    <doc>Create a tgz archive (default choice)</doc>
   </option>
   <option>
    <name>tar</name>
    <shortopt>t</shortopt>
    <type><bool/></type>
    <doc>Create a tar archive (default choice if zlib ext not present)</doc>
   </option>
   <option>
    <name>zip</name>
    <shortopt>z</shortopt>
    <type><bool/></type>
    <doc>Create a zip archive</doc>
   </option>
   <option>
    <name>stub</name>
    <shortopt>s</shortopt>
    <type><string/></type>
    <doc>Path to stub for phar archive</doc>
   </option>
   <option>
    <name>extrasetup</name>
    <shortopt>e</shortopt>
    <type><string/></type>
    <doc>Path to script with extra needed setup</doc>
   </option>
   <option>
    <name>outputfile</name>
    <shortopt>o</shortopt>
    <type><string/></type>
    <doc>Path file to output the result to</doc>
   </option>
  </options>
  <arguments>
   <argument>
    <name>packagexml</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>path to the package.xml for this package.</doc>
   </argument>
  </arguments>
  <doc>Create a release from an existing package.xml

If the package.xml is not specified, here is the search order

 - ./package.xml
 - if package.xml is version 1.0, ./package2.xml

Use PEAR to validate package.xml version 1.0, Pyrus will not validate it.

Packages with a PEAR2 package.xml are packaged using Pyrus, packages with
a PEAR package.xml (pearinstaller dep is not >= 2.0.0a1) are packaged straight
into a tar archive.

By default, an attempt is made to make a .phar release for a Pyrus package,
falling back to a .tgz or .tar.  PEAR packages are only ever packaged as .tgz
or .tar.

If the --stub option is not explicit and stub.php exists in the same directory as
package.xml, it will be used as the stub for phar archives.

If the --extrasetup option is not explicit and extrasetup.php exists in the same
directory as package.xml, it will be used for extra setup for all archives.
  </doc>
 </command>
 <command>
  <name>run-phpt</name>
  <class>PEAR2\Pyrus\Developer\PackageFile\Commands</class>
  <function>runTests</function>
  <autoloadpath></autoloadpath>
  <summary>Run PHPT tests</summary>
  <shortcut>rp</shortcut>
  <options>
   <option>
    <name>coverage</name>
    <shortopt>x</shortopt>
    <type><bool/></type>
    <doc>Generate xdebug code coverage</doc>
   </option>
   <option>
    <name>recursive</name>
    <shortopt>r</shortopt>
    <type><bool/></type>
    <doc>Scan test directories recursively for tests to run</doc>
   </option>
   <option>
    <name>modified</name>
    <shortopt>m</shortopt>
    <type><bool/></type>
    <doc>Use code coverage database to only run modified tests</doc>
   </option>
  </options>
  <arguments>
   <argument>
    <name>path</name>
    <multiple>1</multiple>
    <optional>1</optional>
    <doc>path to tests, or to the tests directory followed by source directory if --modified (default is ./tests ./src).</doc>
   </argument>
  </arguments>
  <doc>Run PHPT tests

This command can be used to execute tests for PECL extensions, or for packages
written using phpt tests.

The --modified option allows running only tests that have been modified, added,
or are affected by modified source files.

Coverage can be viewed in a web browser by opening pear2coverage.phar.php
  </doc>
 </command>
 <command>
  <name>generate-pear2</name>
  <class>PEAR2\Pyrus\Developer\PackageFile\Commands</class>
  <function>pear2Skeleton</function>
  <autoloadpath></autoloadpath>
  <summary>Generate the subversion source layout for a new PEAR2 package</summary>
  <shortcut>gp</shortcut>
  <options/>
  <arguments>
   <argument>
    <name>package</name>
    <multiple>0</multiple>
    <optional>0</optional>
    <doc>Package name</doc>
   </argument>
   <argument>
    <name>channel</name>
    <multiple>0</multiple>
    <optional>1</optional>
    <doc>Channel name, defaults to pear2.php.net</doc>
   </argument>
  </arguments>
  <doc>Create the subversion source layout for a new PEAR2 package.

This command is used to create a bare skeleton for a new PEAR2 package as it
will reside in Subversion.  It creates everything needed except the source code.
  </doc>
 </command>
 <command>
  <name>generate-ext</name>
  <class>PEAR2\Pyrus\Developer\PackageFile\Commands</class>
  <function>extSkeleton</function>
  <autoloadpath></autoloadpath>
  <summary>Generate the subversion source layout for a new PHP extension that is PECL-ready</summary>
  <shortcut>es</shortcut>
  <options>
   <option>
    <name>proto</name>
    <shortopt>p</shortopt>
    <type><string/></type>
    <doc>Path to a file containing function prototypes</doc>
   </option>
   <option>
    <name>nohelp</name>
    <shortopt>n</shortopt>
    <type><bool/></type>
    <doc>Don't generate comments and helper functions to test if the code compiled</doc>
   </option>
  </options>
  <arguments>
   <argument>
    <name>extension</name>
    <multiple>0</multiple>
    <optional>0</optional>
    <doc>Extension name</doc>
   </argument>
  </arguments>
  <doc>Create the subversion source layout for a new PHP extension package.

This command is used to create a bare skeleton for a new PECL package or PHP extension as it
will reside in Subversion.  This is designed to provide all of the functionality of
the ext_skel command but also generates a package.xml and other files that can be used
to automatically update for a release.

If the --proto option is specified, the file passed to this option must contain only function prototypes,
one per line.  Here are 4 examples showing all of the supported types for a function or a method:

int myfunc(string firstarg, unicode secondarg, array thirdarg, object fourtharg [, double optionalarg1
[, float optionalarg2 [, callback optionalarg3 [, text optionalarg4]]]])
void Myclass::myfunc(array|object arg1, bool arg2, class arg3, resource arg4, mixed arg5 [, ... varargs])
static int Myclass::staticfunc()
protected string Myclass::otherguy([mixed optionalarg])
static protected object Myclass::factory(text path)

This command automatically creates class definitions as well as ZEND_ARG_INFO for parameters to
provide useful reflection to your extension's users.
  </doc>
 </command>
</commands>
EOF