]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/Irc/extlib/phergie/build.xml
9b84014ed5c3033accf6a1d4dcd87726297b65e4
[quix0rs-gnu-social.git] / plugins / Irc / extlib / phergie / build.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <project name="Phergie" default="core">
4
5     <tstamp>
6         <format property="DSTAMP" pattern="%Y-%m-%d" />
7     </tstamp>
8
9     <taskdef name="phergiepkg" classname="PhergiePackageTask" />
10     <taskdef name="phpdocumentor" classname="phing.tasks.ext.phpdoc.PhpDocumentorTask" />
11
12     <available file="./build.properties" property="have_properties_file" />
13
14     <property name="clean" value="true" />
15
16     <target name="input">
17
18         <if>
19             <equals arg1="${have_properties_file}" arg2="true" />
20             <then>
21                 <property file="./build.properties" />
22             </then>
23             <else>
24                 <input propertyname="build.srcdir" defaultvalue="./" message="Source directory" /> 
25                 <input propertyname="build.dstdir" defaultvalue="./" message="Destination directory" /> 
26                 <input propertyname="build.version.release" message="Release version" />
27                 <input propertyname="build.version.api" message="API version" />
28                 <input propertyname="build.stability.release" defaultvalue="stable" message="Release stability" validArgs="snapshot,devel,alpha,beta,stable" />
29                 <input propertyname="build.stability.api" defaultvalue="stable"  message="API stability" validArgs="snapshot,devel,alpha,beta,stable" />
30                 <input propertyname="build.notes" message="Release notes" />
31                 <input propertyname="build.phpdep" defaultvalue="5.2.0" message="PHP version required" />
32                 <input propertyname="build.pearinstallerdep" defaultvalue="1.9.0" message="PEAR installer version required" />
33             </else>
34         </if>
35
36         <fileset dir="${build.srcdir}" id="core">
37             <include name="phergie.php" />
38             <include name="phergie.bat" />
39             <include name="LICENSE" />
40             <include name="Settings.php.dist" />
41             <include name="Phergie/Autoload.php" />
42             <include name="Phergie/Bot.php" />
43             <include name="Phergie/Config/Exception.php" />
44             <include name="Phergie/Config.php" />
45             <include name="Phergie/Connection/Exception.php" />
46             <include name="Phergie/Connection/Handler.php" />
47             <include name="Phergie/Connection.php" />
48             <include name="Phergie/Driver/Abstract.php" />
49             <include name="Phergie/Driver/Exception.php" />
50             <include name="Phergie/Driver/Streams.php" />
51             <include name="Phergie/Event/Abstract.php" />
52             <include name="Phergie/Event/Command.php" />
53             <include name="Phergie/Event/Exception.php" />
54             <include name="Phergie/Event/Handler.php" />
55             <include name="Phergie/Event/Request.php" />
56             <include name="Phergie/Event/Response.php" />
57             <include name="Phergie/Exception.php" />
58             <include name="Phergie/Hostmask/Exception.php" />
59             <include name="Phergie/Hostmask.php" />
60             <include name="Phergie/Plugin/Abstract.php" />
61             <include name="Phergie/Plugin/Exception.php" />
62             <include name="Phergie/Plugin/Handler.php" />
63             <include name="Phergie/Ui/Abstract.php" />
64             <include name="Phergie/Ui/Console.php" />
65         </fileset>
66
67     </target>
68
69     <target name="core" depends="input">
70
71         <property name="build.tmpdir" value="Phergie-${build.version.release}" />
72         <property name="build.tarball" value="${build.dstdir}${build.tmpdir}.tgz" />
73
74         <delete file="${build.tarball}" quiet="true" />
75
76         <mkdir dir="${build.tmpdir}" />
77
78         <copy todir="${build.tmpdir}">
79             <fileset refid="core" />
80         </copy>
81
82         <reflexive file="${build.tmpdir}/Phergie/Bot.php">
83             <filterchain>
84                 <replaceregexp>
85                     <regexp
86                         pattern="const VERSION = '[^']+';"
87                         replace="const VERSION = '${build.version.release}';"
88                     />
89                 </replaceregexp>
90             </filterchain>
91         </reflexive>
92
93         <phergiepkg name="Phergie" dir="${build.tmpdir}">
94             <fileset refid="core" />
95             <option name="baseinstalldir" value="/" />
96             <option name="outputdirectory" value="${build.dstdir}" />
97             <option name="channel" value="pear.phergie.org" />
98             <option name="summary" value="Phergie core library" />
99             <option name="description" value="The Phergie package provides all files necessary to run a basic IRC bot." />
100             <option name="apiversion" value="${build.version.api}" />
101             <option name="apistability" value="${build.stability.api}" />
102             <option name="releaseversion" value="${build.version.release}" />
103             <option name="releasestability" value="${build.stability.release}" />
104             <option name="phpdep" value="${build.phpdep}" />
105             <option name="pearinstallerdep" value="${build.pearinstallerdep}" />
106             <option name="license" value="http://phergie.org/license New BSD License" />
107             <option name="packagetype" value="php" />
108             <option name="notes" value="${build.notes}" />
109             <mapping name="replacements">
110                 <element>
111                     <element key="path" value="phergie.php" />
112                     <element key="type" value="pear-config" />
113                     <element key="from" value="/usr/bin/env php" />
114                     <element key="to" value="php_bin" />
115                 </element>
116                 <element>
117                     <element key="path" value="phergie.bat" />
118                     <element key="type" value="pear-config" />
119                     <element key="from" value="@php_bin@" />
120                     <element key="to" value="php_bin" />
121                 </element>
122                 <element>
123                     <element key="path" value="phergie.bat" />
124                     <element key="type" value="pear-config" />
125                     <element key="from" value="@bin_dir@" />
126                     <element key="to" value="bin_dir" />
127                 </element>
128             </mapping>
129             <mapping name="exceptions">
130                 <element key="phergie.php" value="script" />
131                 <element key="phergie.bat" value="script" />
132             </mapping>
133             <mapping name="releases">
134                 <element>
135                     <element key="installconditions">
136                         <element key="os" value="windows" />
137                     </element>
138                     <element key="filelist">
139                         <element key="install">
140                             <element key="phergie.php" value="phergie" />
141                         </element>
142                     </element>
143                 </element>
144                 <element>
145                     <element key="filelist">
146                         <element key="install">
147                             <element key="phergie.php" value="phergie" />
148                         </element>
149                         <element key="ignore">
150                             <element value="phergie.bat" />
151                         </element>
152                     </element>
153                 </element>
154             </mapping>
155             <mapping name="deps">
156                 <element>
157                     <element key="type" value="ext" />
158                     <element key="name" value="pcre" />
159                 </element>
160                 <element>
161                     <element key="type" value="ext" />
162                     <element key="name" value="reflection" />
163                 </element>
164             </mapping>
165         </phergiepkg>
166
167         <phingcall target="build" />
168
169         <phingcall target="clean" />
170
171     </target>
172
173     <target name="plugin" depends="input">
174         
175         <if>
176             <equals arg1="${have_properties_file}" arg2="true" />
177             <then>
178                 <property file="./build.properties" />
179             </then>
180             <else>
181                 <input propertyname="build.plugin" message="Short plugin name" />
182                 <input propertyname="build.summary" message="Plugin summary" />
183                 <input propertyname="build.description" message="Plugin description" />
184             </else>
185         </if>
186
187         <property name="build.class" value="Phergie_Plugin_${build.plugin}" />
188         <property name="build.tmpdir" value="${build.class}-${build.version.release}" />
189         <property name="build.tarball" value="${build.dstdir}${build.tmpdir}.tgz" />
190
191         <fileset dir="${build.srcdir}" id="plugin">
192             <include name="Phergie/Plugin/${build.plugin}.php" />
193             <include name="Phergie/Plugin/${build.plugin}/**" />
194         </fileset>
195
196         <delete file="${build.tarball}" quiet="true" />
197
198         <mkdir dir="${build.tmpdir}" />
199
200         <copy todir="${build.tmpdir}">
201             <fileset refid="plugin" />
202         </copy>
203
204         <phergiepkg name="${build.class}" dir="${build.tmpdir}">
205             <fileset refid="plugin" />
206             <option name="baseinstalldir" value="/" />
207             <option name="outputdirectory" value="${build.dstdir}" />
208             <option name="channel" value="pear.phergie.org"/>
209             <option name="summary" value="${build.summary}"/>
210             <option name="description" value="${build.description}"/>
211             <option name="apiversion" value="${build.version.api}"/>
212             <option name="apistability" value="${build.stability.api}"/>
213             <option name="releaseversion" value="${build.version.release}"/>
214             <option name="releasestability" value="${build.stability.release}"/>
215             <option name="phpdep" value="${build.phpdep}" />
216             <option name="pearinstallerdep" value="${build.pearinstallerdep}" />
217             <option name="license" value="http://phergie.org/license New BSD License"/>
218             <option name="packagetype" value="php"/>
219             <option name="notes" value="${build.notes}"/>
220         </phergiepkg>
221
222         <phingcall target="build" />
223
224         <phingcall target="clean" />
225
226     </target>
227
228     <target name="docs" depends="input">
229         
230         <property name="build.tmpdir" value="Phergie_Docs-${build.version.release}" />
231         <property name="build.tarball" value="${build.dstdir}${build.tmpdir}.tgz" />
232
233         <delete file="${build.tarball}" quiet="true" />
234
235         <mkdir dir="${build.tmpdir}" />
236
237         <phpdocumentor title="API Documentation"
238             destdir="${build.tmpdir}/api"
239             output="HTML:Smarty:PHP">
240             <fileset refid="core" />
241             <projdocfileset dir=".">
242                 <include name="LICENSE" />
243             </projdocfileset>
244         </phpdocumentor>
245
246         <phergiepkg name="Phergie_Docs" dir="${build.tmpdir}">
247             <fileset dir="${build.tmpdir}">
248                 <include name="api**" />
249             </fileset>
250             <option name="baseinstalldir" value="/" />
251             <option name="outputdirectory" value="${build.dstdir}" />
252             <option name="channel" value="pear.phergie.org" />
253             <option name="summary" value="Phergie core library documentation" />
254             <option name="description" value="The Phergie_Docs package provides documentation for the Phergie core libraries." />
255             <option name="apiversion" value="${build.version.api}" />
256             <option name="apistability" value="${build.stability.api}" />
257             <option name="releaseversion" value="${build.version.release}" />
258             <option name="releasestability" value="${build.stability.release}" />
259             <option name="phpdep" value="${build.phpdep}" />
260             <option name="pearinstallerdep" value="${build.pearinstallerdep}" />
261             <option name="license" value="http://phergie.org/license New BSD License" />
262             <option name="packagetype" value="php" />
263             <option name="notes" value="${build.notes}" />
264             <mapping name="exceptions">
265                 <element key="api" value="doc" />
266             </mapping>
267         </phergiepkg>
268
269         <phingcall target="build" />
270
271         <phingcall target="clean" />
272
273     </target>
274
275     <target name="build">
276
277         <tar destfile="${build.tarball}" compression="gzip">
278             <fileset dir="${build.dstdir}">
279                 <include name="${build.tmpdir}**" />
280                 <include name="package.xml" />
281             </fileset>
282         </tar>
283
284     </target>
285
286     <target name="clean">
287
288         <if>
289             <istrue value="${clean}" />
290             <then>
291                 <delete dir="${build.tmpdir}" />
292                 <delete file="${build.dstdir}package.xml" />
293             </then>
294         </if>
295
296     </target>
297
298 </project>