278 lines
9.2 KiB
XML
278 lines
9.2 KiB
XML
<project default="all">
|
|
<!--############# CONFIGURE ALL PROPERTIES FOR THE REPLACER HERE ################-->
|
|
<property name="plugin_version" value="2.0.3"/>
|
|
<!-- EOC -->
|
|
|
|
<property name="root-folder" value="${basedir}/../"/>
|
|
<property name="tools-folder" value="${root-folder}/TOOLS/"/>
|
|
<property name="target-folder" value="${root-folder}/DEPLOY/plugins"/>
|
|
|
|
<import file="${tools-folder}/antutil.xml"/>
|
|
|
|
<typedef file="${tools-folder}/antlib.xml">
|
|
<classpath>
|
|
<pathelement location="${tools-folder}/tools.jar"/>
|
|
<pathelement location="${tools-folder}/lib/compiler.jar"/>
|
|
</classpath>
|
|
</typedef>
|
|
|
|
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
|
|
<classpath>
|
|
<pathelement location="${tools-folder}/lib/ant-contrib-1.0b3.jar"/>
|
|
</classpath>
|
|
</taskdef>
|
|
|
|
<!-- os checks for xmllint... -->
|
|
<condition property="isWindows" value="true">
|
|
<os family="windows" />
|
|
</condition>
|
|
|
|
<!-- define nicknames for libraries -->
|
|
<property name="yui-compressor" location="${tools-folder}/lib/yuicompressor-2.4.2.jar" />
|
|
<property name="yui-compressor-ant-task" location="${tools-folder}/lib/yui-compressor-ant-task-0.5.jar" />
|
|
|
|
<!-- adds libraries to the classpath -->
|
|
<path id="yui.classpath">
|
|
<pathelement location="${yui-compressor}" />
|
|
<pathelement location="${yui-compressor-ant-task}" />
|
|
</path>
|
|
|
|
<!-- define tasks -->
|
|
<taskdef name="yui-compressor" classname="net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask">
|
|
<classpath refid="yui.classpath" />
|
|
</taskdef>
|
|
|
|
|
|
<!-- Determine plugin name -->
|
|
<var name="plugin" unset="true"/>
|
|
<basename file="${basedir}" property="plugin"/>
|
|
|
|
<!-- The Plugin distribution files -->
|
|
<property name="plugin-folder" value="${plugin}"/>
|
|
<property name="plugin-debugfile" value="${plugin}-debug.js"/>
|
|
<property name="plugin-file" value="${plugin}.js"/>
|
|
|
|
<!-- The Plugin CSS files -->
|
|
<property name="plugin-css-folder" value="resources/css"/>
|
|
<property name="plugin-css-file" value="${plugin}-min.css"/>
|
|
<property name="plugin-css-debug-file" value="${plugin}.css"/>
|
|
|
|
<!-- Meta target -->
|
|
<target name="all" depends="concat, compress"/>
|
|
|
|
<!-- Clean -->
|
|
<target name="clean">
|
|
<delete includeemptydirs="true" failonerror="false">
|
|
<!-- Delete the Plugin files -->
|
|
<fileset dir="${target-folder}/${plugin-folder}/js">
|
|
<include name="${plugin-file}"/>
|
|
<include name="${plugin-debugfile}"/>
|
|
</fileset>
|
|
<fileset dir="${target-folder}/${plugin-folder}/php">
|
|
<include name="**/*.php"/>
|
|
</fileset>
|
|
<fileset dir="${target-folder}/${plugin-folder}/resources">
|
|
<include name="**/*"/>
|
|
</fileset>
|
|
<fileset dir="${target-folder}/${plugin-folder}/${plugin-css-folder}">
|
|
<include name="${plugin-css-debug-file}"/>
|
|
<include name="${plugin-css-file}"/>
|
|
</fileset>
|
|
</delete>
|
|
</target>
|
|
|
|
<!-- Concatenates JavaScript files with automatic dependency generation -->
|
|
<target name="concat">
|
|
<!-- Concatenate plugin JS file -->
|
|
<if>
|
|
<available file="js" type="dir" />
|
|
<then>
|
|
<mkdir dir="${target-folder}/${plugin-folder}/js"/>
|
|
<echo message="Concatenating: ${plugin-debugfile}"/>
|
|
<!-- TODO: fix JS files for zConcat -->
|
|
<!--zConcat outputFolder="${target-folder}/${plugin-folder}/js" outputFile="${plugin-debugfile}" prioritize="\w+">
|
|
<concatfiles>
|
|
<fileset dir="js" includes="**/*.js" />
|
|
</concatfiles>
|
|
</zConcat-->
|
|
<concat destfile="${target-folder}/${plugin-folder}/js/${plugin-debugfile}">
|
|
<fileset file="js/ABOUT.js" />
|
|
<fileset file="js/data/timezones.js" />
|
|
<fileset file="js/plugin.calendarimporter.js" />
|
|
<fileset file="js/data/ResponseHandler.js" />
|
|
<fileset file="js/dialogs/ImportContentPanel.js" />
|
|
<fileset file="js/dialogs/ImportPanel.js" />
|
|
</concat>
|
|
</then>
|
|
</if>
|
|
|
|
<!-- Concatenate plugin CSS files -->
|
|
<if>
|
|
<available file="${plugin-css-folder}" type="dir" />
|
|
<then>
|
|
<mkdir dir="${target-folder}/${plugin-folder}/${plugin-css-folder}"/>
|
|
<echo message="Concatenating: ${plugin-css-debug-file}"/>
|
|
<zConcat outputFolder="${target-folder}/${plugin-folder}/${plugin-css-folder}" outputFile="${plugin-css-debug-file}">
|
|
<concatfiles>
|
|
<fileset dir="${plugin-css-folder}" includes="**/*.css" />
|
|
</concatfiles>
|
|
</zConcat>
|
|
</then>
|
|
</if>
|
|
</target>
|
|
|
|
<!-- Preformat the Concatenated Javascript files to improve compilation -->
|
|
<target name="preformat" depends="concat">
|
|
<if>
|
|
<available file="${target-folder}/${plugin-folder}/js/${plugin-debugfile}" type="file" />
|
|
<then>
|
|
<echo message="Preformatting: ${plugin-debugfile}"/>
|
|
<replaceregexp byline="true">
|
|
<regexp pattern="(^[ ,\t]*\*[ ,\t]@.*)\{(.*)\[\]\}"/>
|
|
<substitution expression="\1{\2\|Array}"/>
|
|
<fileset dir="${target-folder}/${plugin-folder}/js" includes="${plugin-debugfile}"/>
|
|
</replaceregexp>
|
|
</then>
|
|
</if>
|
|
</target>
|
|
|
|
<!-- Compress JavaScript -->
|
|
<target name="compress" depends="preformat">
|
|
<if>
|
|
<available file="${target-folder}/${plugin-folder}/js/${plugin-debugfile}" type="file" />
|
|
<then>
|
|
<echo message="Compiling: ${plugin-debugfile}" />
|
|
<zCompile inputFolder="${target-folder}/${plugin-folder}/js" inputFile="${plugin-debugfile}" outputFolder="${target-folder}/${plugin-folder}/js" outputFile="${plugin-file}">
|
|
<externs>
|
|
var Ext = {};
|
|
var Zarafa = {};
|
|
var container = {};
|
|
var _ = function(key, domain) {};
|
|
var dgettext = function(domain, msgid) {};
|
|
var dngettext = function(domain, msgid, msgid_plural, count) {};
|
|
var dnpgettext = function(domain, msgctxt, msgid, msgid_plural, count) {};
|
|
var dpgettext = function(domain, msgctxt, msgid) {};
|
|
var ngettext = function(msgid, msgid_plural, count) {};
|
|
var npgettext = function(msgctxt, msgid, msgid_plural, count) {};
|
|
var pgettext = function(msgctxt, msgid) {};
|
|
</externs>
|
|
</zCompile>
|
|
<!--yui-compressor
|
|
warn="false"
|
|
munge="true"
|
|
preserveallsemicolons="false"
|
|
fromdir="${target-folder}/${plugin-folder}/js"
|
|
todir="${target-folder}/${plugin-folder}/js">
|
|
|
|
<include name="${plugin-debugfile}" />
|
|
</yui-compressor-->
|
|
</then>
|
|
</if>
|
|
</target>
|
|
|
|
<!-- syntax check all PHP files -->
|
|
<target name="validate">
|
|
<if>
|
|
<available file="config.php" type="file" />
|
|
<then>
|
|
<antcall target="syntax-check">
|
|
<param name="file" value="config.php"/>
|
|
</antcall>
|
|
</then>
|
|
</if>
|
|
<if>
|
|
<available file="php" type="dir" />
|
|
<then>
|
|
<foreach target="syntax-check" param="file">
|
|
<path>
|
|
<fileset dir=".">
|
|
<include name="**/*.php"/>
|
|
</fileset>
|
|
</path>
|
|
</foreach>
|
|
</then>
|
|
</if>
|
|
</target>
|
|
|
|
<target name="syntax-check">
|
|
<echo message="validating ${file}"/>
|
|
<exec executable="php" failonerror="true" failifexecutionfails="false">
|
|
<arg value="-l"/>
|
|
<arg value="${file}"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<!-- on windows we do not check the xml file -->
|
|
<target name="xml-os-sel" depends="xml-check,xml-copy">
|
|
<echo>Processing manifest.xml</echo>
|
|
</target>
|
|
|
|
<!-- check manifest.xml if we are on windows... -->
|
|
<target name="xml-check" unless="isWindows">
|
|
<echo message="Checking xml: manifest.xml" />
|
|
<!-- Copy (and validate) manifest.xml -->
|
|
<exec executable="xmllint" output="${target-folder}/${plugin-folder}/manifest.xml" failonerror="true" error="/dev/stdout" failifexecutionfails="false">
|
|
<arg value="--valid"/>
|
|
<arg value="--path"/>
|
|
<arg value="${root-folder}/server"/>
|
|
<arg value="manifest.xml"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<!-- check manifest.xml if we are on windows... -->
|
|
<target name="xml-copy" if="isWindows">
|
|
<echo message="Copying xml: manifest.xml" />
|
|
<!-- Copy manifest.xml -->
|
|
<copy todir="${target-folder}/${plugin-folder}">
|
|
<fileset dir=".">
|
|
<include name="manifest.xml"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Install all files into the target folder -->
|
|
<target name="deploy" depends="clean, compress, compresscss, validate, xml-os-sel">
|
|
<mkdir dir="${target-folder}/${plugin-folder}"/>
|
|
|
|
<!-- copy files -->
|
|
<copy todir="${target-folder}/${plugin-folder}">
|
|
<fileset dir=".">
|
|
<include name="resources/**/*"/>
|
|
<include name="php/**/*.php"/>
|
|
<include name="config.php"/>
|
|
<include name="changelog.txt"/>
|
|
<!-- exclude the ant script -->
|
|
<exclude name="build.xml"/>
|
|
<!-- CSS is generated during build -->
|
|
<exclude name="resources/css/*.*"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- replace all variables... -->
|
|
<replace file="${target-folder}/${plugin-folder}/manifest.xml" token="@_@PLUGIN_VERSION@_@" value="${plugin_version}" />
|
|
</target>
|
|
|
|
<!-- compresses each CSS file -->
|
|
<target name="compresscss" depends="concat">
|
|
|
|
<available file="${tools-folder}/lib/yui-compressor-ant-task-0.5.jar" property="YUIANT_AVAILABLE" />
|
|
<fail unless="YUIANT_AVAILABLE" message="yui-compressor-ant-task-0.5.jar not found" />
|
|
|
|
<if>
|
|
<available file="${target-folder}/${plugin-folder}/${plugin-css-folder}/${plugin-css-debug-file}" type="file" />
|
|
<then>
|
|
<yui-compressor
|
|
warn="false"
|
|
munge="true"
|
|
preserveallsemicolons="false"
|
|
fromdir="${target-folder}/${plugin-folder}/${plugin-css-folder}"
|
|
todir="${target-folder}/${plugin-folder}/${plugin-css-folder}">
|
|
|
|
<include name="${plugin-css-debug-file}" />
|
|
</yui-compressor>
|
|
</then>
|
|
</if>
|
|
</target>
|
|
|
|
</project>
|