1 <?xml version="1.0" encoding="UTF-8"?>
3 <project name="Phergie" default="core">
6 <format property="DSTAMP" pattern="%Y-%m-%d" />
9 <taskdef name="phergiepkg" classname="PhergiePackageTask" />
10 <taskdef name="phpdocumentor" classname="phing.tasks.ext.phpdoc.PhpDocumentorTask" />
12 <available file="./build.properties" property="have_properties_file" />
14 <property name="clean" value="true" />
19 <equals arg1="${have_properties_file}" arg2="true" />
21 <property file="./build.properties" />
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" />
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/Db/Exception.php" />
49 <include name="Phergie/Db/Manager.php" />
50 <include name="Phergie/Db/Sqlite.php" />
51 <include name="Phergie/Driver/Abstract.php" />
52 <include name="Phergie/Driver/Exception.php" />
53 <include name="Phergie/Driver/Streams.php" />
54 <include name="Phergie/Event/Abstract.php" />
55 <include name="Phergie/Event/Command.php" />
56 <include name="Phergie/Event/Exception.php" />
57 <include name="Phergie/Event/Handler.php" />
58 <include name="Phergie/Event/Request.php" />
59 <include name="Phergie/Event/Response.php" />
60 <include name="Phergie/Exception.php" />
61 <include name="Phergie/Hostmask/Exception.php" />
62 <include name="Phergie/Hostmask.php" />
63 <include name="Phergie/Plugin/Abstract.php" />
64 <include name="Phergie/Plugin/Exception.php" />
65 <include name="Phergie/Plugin/Handler.php" />
66 <include name="Phergie/Ui/Abstract.php" />
67 <include name="Phergie/Ui/Console.php" />
72 <target name="core" depends="input">
74 <property name="build.tmpdir" value="Phergie-${build.version.release}" />
75 <property name="build.tarball" value="${build.dstdir}${build.tmpdir}.tgz" />
77 <delete file="${build.tarball}" quiet="true" />
79 <mkdir dir="${build.tmpdir}" />
81 <copy todir="${build.tmpdir}">
82 <fileset refid="core" />
85 <reflexive file="${build.tmpdir}/Phergie/Bot.php">
89 pattern="const VERSION = '[^']+';"
90 replace="const VERSION = '${build.version.release}';"
96 <phergiepkg name="Phergie" dir="${build.tmpdir}">
97 <fileset refid="core" />
98 <option name="baseinstalldir" value="/" />
99 <option name="outputdirectory" value="${build.dstdir}" />
100 <option name="channel" value="pear.phergie.org" />
101 <option name="summary" value="Phergie core library" />
102 <option name="description" value="The Phergie package provides all files necessary to run a basic IRC bot." />
103 <option name="apiversion" value="${build.version.api}" />
104 <option name="apistability" value="${build.stability.api}" />
105 <option name="releaseversion" value="${build.version.release}" />
106 <option name="releasestability" value="${build.stability.release}" />
107 <option name="phpdep" value="${build.phpdep}" />
108 <option name="pearinstallerdep" value="${build.pearinstallerdep}" />
109 <option name="license" value="http://phergie.org/license New BSD License" />
110 <option name="packagetype" value="php" />
111 <option name="notes" value="${build.notes}" />
112 <mapping name="replacements">
114 <element key="path" value="phergie.php" />
115 <element key="type" value="pear-config" />
116 <element key="from" value="/usr/bin/env php" />
117 <element key="to" value="php_bin" />
120 <element key="path" value="phergie.bat" />
121 <element key="type" value="pear-config" />
122 <element key="from" value="@php_bin@" />
123 <element key="to" value="php_bin" />
126 <element key="path" value="phergie.bat" />
127 <element key="type" value="pear-config" />
128 <element key="from" value="@bin_dir@" />
129 <element key="to" value="bin_dir" />
132 <mapping name="exceptions">
133 <element key="phergie.php" value="script" />
134 <element key="phergie.bat" value="script" />
136 <mapping name="releases">
138 <element key="installconditions">
139 <element key="os" value="windows" />
141 <element key="filelist">
142 <element key="install">
143 <element key="phergie.php" value="phergie" />
148 <element key="filelist">
149 <element key="install">
150 <element key="phergie.php" value="phergie" />
152 <element key="ignore">
153 <element value="phergie.bat" />
158 <mapping name="deps">
160 <element key="type" value="ext" />
161 <element key="name" value="pcre" />
164 <element key="type" value="ext" />
165 <element key="name" value="reflection" />
170 <phingcall target="build" />
172 <phingcall target="clean" />
176 <target name="plugin" depends="input">
179 <equals arg1="${have_properties_file}" arg2="true" />
181 <property file="./build.properties" />
184 <input propertyname="build.plugin" message="Short plugin name" />
185 <input propertyname="build.summary" message="Plugin summary" />
186 <input propertyname="build.description" message="Plugin description" />
190 <property name="build.class" value="Phergie_Plugin_${build.plugin}" />
191 <property name="build.tmpdir" value="${build.class}-${build.version.release}" />
192 <property name="build.tarball" value="${build.dstdir}${build.tmpdir}.tgz" />
194 <fileset dir="${build.srcdir}" id="plugin">
195 <include name="Phergie/Plugin/${build.plugin}.php" />
196 <include name="Phergie/Plugin/${build.plugin}/**" />
199 <delete file="${build.tarball}" quiet="true" />
201 <mkdir dir="${build.tmpdir}" />
203 <copy todir="${build.tmpdir}">
204 <fileset refid="plugin" />
207 <phergiepkg name="${build.class}" dir="${build.tmpdir}">
208 <fileset refid="plugin" />
209 <option name="baseinstalldir" value="/" />
210 <option name="outputdirectory" value="${build.dstdir}" />
211 <option name="channel" value="pear.phergie.org"/>
212 <option name="summary" value="${build.summary}"/>
213 <option name="description" value="${build.description}"/>
214 <option name="apiversion" value="${build.version.api}"/>
215 <option name="apistability" value="${build.stability.api}"/>
216 <option name="releaseversion" value="${build.version.release}"/>
217 <option name="releasestability" value="${build.stability.release}"/>
218 <option name="phpdep" value="${build.phpdep}" />
219 <option name="pearinstallerdep" value="${build.pearinstallerdep}" />
220 <option name="license" value="http://phergie.org/license New BSD License"/>
221 <option name="packagetype" value="php"/>
222 <option name="notes" value="${build.notes}"/>
225 <phingcall target="build" />
227 <phingcall target="clean" />
231 <target name="docs" depends="input">
233 <property name="build.tmpdir" value="Phergie_Docs-${build.version.release}" />
234 <property name="build.tarball" value="${build.dstdir}${build.tmpdir}.tgz" />
236 <delete file="${build.tarball}" quiet="true" />
238 <mkdir dir="${build.tmpdir}" />
240 <phpdocumentor title="API Documentation"
241 destdir="${build.tmpdir}/api"
242 output="HTML:Smarty:PHP">
243 <fileset refid="core" />
244 <projdocfileset dir=".">
245 <include name="LICENSE" />
249 <phergiepkg name="Phergie_Docs" dir="${build.tmpdir}">
250 <fileset dir="${build.tmpdir}">
251 <include name="api**" />
253 <option name="baseinstalldir" value="/" />
254 <option name="outputdirectory" value="${build.dstdir}" />
255 <option name="channel" value="pear.phergie.org" />
256 <option name="summary" value="Phergie core library documentation" />
257 <option name="description" value="The Phergie_Docs package provides documentation for the Phergie core libraries." />
258 <option name="apiversion" value="${build.version.api}" />
259 <option name="apistability" value="${build.stability.api}" />
260 <option name="releaseversion" value="${build.version.release}" />
261 <option name="releasestability" value="${build.stability.release}" />
262 <option name="phpdep" value="${build.phpdep}" />
263 <option name="pearinstallerdep" value="${build.pearinstallerdep}" />
264 <option name="license" value="http://phergie.org/license New BSD License" />
265 <option name="packagetype" value="php" />
266 <option name="notes" value="${build.notes}" />
267 <mapping name="exceptions">
268 <element key="api" value="doc" />
272 <phingcall target="build" />
274 <phingcall target="clean" />
278 <target name="build">
280 <tar destfile="${build.tarball}" compression="gzip">
281 <fileset dir="${build.dstdir}">
282 <include name="${build.tmpdir}**" />
283 <include name="package.xml" />
289 <target name="clean">
292 <istrue value="${clean}" />
294 <delete dir="${build.tmpdir}" />
295 <delete file="${build.dstdir}package.xml" />