1<?xml version="1.0" encoding="utf-8"?> 2<project name="GeSHi" default="pack" basedir="."> 3 <!-- 4 GeSHi - Generic Syntax Highlighter - phing build file. 5 Works for 1.0.x 6 Packs up a new version of geshi, tags it in git and releases it on 7 sourceforge.net 8 --> 9 <property file="build.properties" /> 10 11 <property name="version" value="1.0.9.1" /> 12 <property name="stability" value="stable" /> 13 <property name="zipfile" value="${phing.project.name}-${version}.zip" /> 14 <property name="gzfile" value="${phing.project.name}-${version}.tar.gz" /> 15 <property name="bz2file" value="${phing.project.name}-${version}.tar.bz2" /> 16 <property name="pkgfile" value="geshi-${version}.tgz" /> 17 <property name="fileprefix" value="geshi/" /> 18 <property name="sfproject" value="GeSHi" /> 19 <property name="sffilepath" value="g/ge/geshi/" /> 20 21 <property name="releasenotes" value=" 22Version 1.0.9.1 23" /> 24 25 26 <fileset dir="src" id="files"> 27 <include name="**"/> 28 <exclude name="**/.gitignore/"/> 29 </fileset> 30 31 <fileset dir="." id="extra"> 32 <include name="contrib/**"/> 33 <include name="docs/**"/> 34 </fileset> 35 36 <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" /> 37 38 39 40 <target name="pack" depends="" 41 description="Create zip and tar files for release" 42 > 43 <mkdir dir="dist" /> 44 <echo msg="Creating distribution files for ${phing.project.name} ${version}"/> 45 46 <delete file="dist/${zipfile}" failonerror="false"/> 47 <delete file="dist/${gzfile}" failonerror="false"/> 48 <delete file="dist/${bz2file}" failonerror="false"/> 49 50 <zip destfile="dist/${zipfile}" prefix="${fileprefix}"> 51 <fileset refid="files" /> 52 <fileset refid="extra" /> 53 </zip> 54 <tar destfile="dist/${gzfile}" prefix="${fileprefix}" compression="gzip"> 55 <fileset refid="files" /> 56 <fileset refid="extra" /> 57 </tar> 58 <tar destfile="dist/${bz2file}" prefix="${fileprefix}" compression="bzip2"> 59 <fileset refid="files" /> 60 <fileset refid="extra" /> 61 </tar> 62 </target> 63 64 65 66 <target name="pack-pear" depends="" 67 description="Creates the PEAR package" 68 > 69 <mkdir dir="dist/pear" /> 70 <delete file="src/package.xml" failonerror="false" /> 71 <d51pearpkg2 dir="src" baseinstalldir="/"> 72 <name>geshi</name> 73 <summary>Generic syntax highlighter, written in PHP.</summary> 74 <description> 75 GeSHi is a generic syntax highlighter, written in PHP. You simply 76 input the source code you wish to highlight with the language you 77 wish to use, and the output will be a file syntax highlighted to 78 XHTML standards. 79 </description> 80 <channel>pear.geshi.org</channel> 81 82 <lead user="benbe" name="Benny Baumann" email="benbe@geshi.org" /> 83 <license>AGPL</license> 84 85 <version release="${version}" api="${version}" /> 86 <stability release="${stability}" api="${stability}" /> 87 88 <notes>${releasenotes}</notes> 89 90 <dependencies> 91 <php minimum_version="5.3.0" /> 92 <pear minimum_version="1.9.0" /> 93 </dependencies> 94 95 <!-- map directory (key) to role --> 96 <dirroles key="src">.</dirroles> 97 98 <ignore>**/.gitignore</ignore> 99 <ignore>contrib/**</ignore> 100 <ignore>dist/**</ignore> 101 <ignore>docs/**</ignore> 102 <ignore>*.properties</ignore> 103 <ignore>*.tgz</ignore> 104 </d51pearpkg2> 105 <!-- time to fix the package.xml file since the task does not 106 allow everything we need: 107 - strip the base directory names like src, data and www 108 - remove that dumb baseinstalldir from files 109 - md5sums are generated automatically when packaging 110 --> 111 <!-- yes, we need to generate a 2nd file and move it back --> 112 <copy file="src/package.xml" tofile="src/package2.xml" overwrite="true"> 113 <filterchain> 114 <replaceregexp> 115 <!-- remove md5sums --> 116 <regexp 117 pattern="md5sum="[a-z0-9]{32}" " 118 replace="" 119 /> 120 <!-- remove baseinstalldir for files --> 121 <regexp 122 pattern="<file baseinstalldir="/"" 123 replace="<file" 124 /> 125 <!-- install-as for different directories --> 126 <regexp 127 pattern="(<file name="data/(.+?)")" 128 replace="\1 install-as="\2"" 129 /> 130 <regexp 131 pattern="(<file name="doc/(.+?)")" 132 replace="\1 install-as="\2"" 133 /> 134 <regexp 135 pattern="(<file name="tests/(.+?)")" 136 replace="\1 install-as="\2"" 137 /> 138 <regexp 139 pattern="(<file name="www/(.+?)")" 140 replace="\1 install-as="phorkie/\2"" 141 /> 142 <regexp 143 pattern="(<file name="src/(.+?)")" 144 replace="\1 install-as="\2"" 145 /> 146 </replaceregexp> 147 </filterchain> 148 </copy> 149 <move file="src/package2.xml" tofile="src/package.xml" overwrite="true" /> 150 151 <!-- package up --> 152 <exec command="pear package" passthru="true" dir="src" /> 153 <move file="src/${pkgfile}" todir="${phing.dir}/dist/pear/" /> 154 155 <delete file="src/package.xml" failonerror="true" /> 156 </target> 157 158 159 160 <target name="release" depends="check,pack,pack-pear,deploy-sf,gittag" 161 description="Release the version on sourceforge" 162 > 163 <!-- meta-target --> 164 </target> 165 166 167 <!-- 168 https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download 169 --> 170 <target name="deploy-sf" depends="check,pack" 171 description="Upload release to sourceforge" 172 > 173 <delete dir="dist/deploy-sf" /><!-- make empty --> 174 <mkdir dir="dist/deploy-sf" /> 175 <mkdir dir="dist/deploy-sf/geshi" /> 176 <mkdir dir="dist/deploy-sf/geshi/GeSHi ${version}" /> 177 <copy todir="dist/deploy-sf/geshi/GeSHi ${version}/"> 178 <fileset dir="dist"> 179 <include name="${zipfile}" /> 180 <include name="${gzfile}" /> 181 <include name="${bz2file}" /> 182 </fileset> 183 </copy> 184 <!-- test 185 <exec command="rsync -av dist/deploy-sf/ /tmp/test/" escape="false" /> 186 --> 187 <exec 188 command="rsync -av -e ssh dist/deploy-sf/ ${sfuser},${sfproject}@frs.sourceforge.net:/home/frs/project/${sffilepath}/${sfproject}/" 189 escape="false" checkreturn="false" 190 /> 191 192 <!-- rsync always returns code 23 on sourceforge releases, so we 193 can't check return values --> 194 </target> 195 196 197 <target name="gittag" 198 description="create the git tag for the current version" 199 > 200 <exec 201 command="git tag v${version}'" 202 escape="false" checkreturn="true" 203 /> 204 </target> 205 206 207 <target name="check" 208 description="Check variables" 209 > 210 <fail unless="version" message="Version not defined!" /> 211 <fail unless="sfuser" message="Sourceforge username not defined!" /> 212 <fail unless="sfproject" message="Sourceforge project name not defined!" /> 213 <fail unless="sffilepath" message="Sourceforge project file path not defined!" /> 214 </target> 215 216</project> 217