| <project default="custom.build" name="aggregate site builder"> |
| <!-- if ${WORKSPACE}/site folder exists, target that folder; else generate here. --> |
| <condition property="output.dir" value="${WORKSPACE}/results" else="${basedir}"> |
| <available file="${WORKSPACE}/results" /> |
| </condition> |
| |
| <property name="update.site.source.dir" value="${output.dir}/target/site" /> |
| |
| <!-- load properties from default (or alternate) properties file --> |
| <property name="associate.properties" value="associate.properties" /> |
| <property file="${associate.properties}" /> |
| |
| <target name="init"> |
| <taskdef resource="net/sf/antcontrib/antlib.xml"/> |
| </target> |
| |
| <!-- don't do collect.zips,collect.metadata,create.summary.file --> |
| <target name="custom.build" description="aggregate update site extras" depends="init,check.target,add.associate.sites,pack.zip" /> |
| |
| <target name="add.associate.sites" if="associate.sites"> |
| <if> |
| <and> |
| <!-- Defined in associate.properties --> |
| <isset property="associate.sites" /> |
| <not> |
| <equals arg1="${associate.sites}" arg2="" /> |
| </not> |
| </and> |
| <then> |
| <if> |
| <available file="${update.site.source.dir}/content.jar" type="file" /> |
| <then> |
| <unzip src="${update.site.source.dir}/content.jar" dest="${update.site.source.dir}" /> |
| <delete file="${update.site.source.dir}/content.jar" /> |
| </then> |
| </if> |
| <!-- counter variable --> |
| <var name="associate.sites.0" value="" /> |
| <for param="associate.site" list="${associate.sites}" delimiter=", |
| "> |
| <sequential> |
| <var name="associate.sites.0" value="${associate.sites.0}00" /> |
| </sequential> |
| </for> |
| <length property="associate.sites.length" string="${associate.sites.0}" /> |
| |
| <loadfile srcfile="${update.site.source.dir}/content.xml" property="content.xml"> |
| <filterchain> |
| <tailfilter lines="-1" skip="1" /> |
| </filterchain> |
| </loadfile> |
| <echo file="${update.site.source.dir}/content.xml" message="${content.xml}" /> |
| <echo file="${update.site.source.dir}/content.xml" append="true"> <references size='${associate.sites.length}'> |
| </echo> |
| <for param="associate.site" list="${associate.sites}" delimiter=", |
| "> |
| <sequential> |
| <!-- insert into content.xml --> |
| <echo file="${update.site.source.dir}/content.xml" append="true"> <repository uri='@{associate.site}' url='@{associate.site}' type='0' options='1'/> |
| <repository uri='@{associate.site}' url='@{associate.site}' type='1' options='1'/> |
| </echo> |
| </sequential> |
| </for> |
| <echo file="${update.site.source.dir}/content.xml" append="true"> </references> |
| </repository> |
| </echo> |
| <zip destfile="${update.site.source.dir}/content.jar" basedir="${update.site.source.dir}" includes="content.xml" /> |
| <delete file="${update.site.source.dir}/content.xml" /> |
| </then> |
| </if> |
| </target> |
| |
| <target name="unpack.zip"> |
| <unzip src="${output.dir}/target/site_assembly.zip" dest="${update.site.source.dir}" /> |
| </target> |
| |
| <target name="pack.zip"> |
| <zip destfile="${output.dir}/target/site_assembly.zip" update="true" basedir="${update.site.source.dir}" includes="content.* index.html, web/*.css, README*" /> |
| </target> |
| |
| <target name="check.target"> |
| <if> |
| <or> |
| <not> |
| <available file="${output.dir}/target/site" type="dir" /> |
| </not> |
| <not> |
| <available file="${output.dir}/target/site_assembly.zip" type="file" /> |
| </not> |
| </or> |
| <then> |
| <fail> |
| -- |
| This script must ONLY be called via the pom.xml in this directory, not run directly. |
| Cannot adjust an update site w/o first building it! |
| -- |
| To run this build, use Tycho. Try `mvn3 clean install -fae -e -B` |
| </fail> |
| </then> |
| </if> |
| </target> |
| |
| </project> |