<?xml version="1.0" standalone="no" ?>

<project name="Mavenify Jide" default="mavenify" basedir=".">
    <description>
        Script that converts a Jide distribution into Maven repository structure, complete with pom files. Just extract
        target zip, e.g. "jide.2.10.0-Maven-Style.zip" under ~/.m2/repository.

        Call the script like '/usr/local/ant/bin/ant -f mavenify_jide.xml -Drelease.version=2.10.0'

        The script requires antcontrib in the ANT_HOME/lib/ folder. antcontrib requires Ant 1.6, or higher.
    </description>

    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="/usr/local/ant/lib/ant-contrib-0.3.jar"/>
        </classpath>
    </taskdef>

    <property name="distribution.dir" value="jide.${release.version}/lib"/>
    <property name="target.dir" value="jide_maven_style.${release.version}"/>
    <property name="target.repo.dir" value="${target.dir}/com/jide"/>

    <target name="init">
        <tstamp/>
        <!-- Create the build directory structure used  -->
        <delete dir="${target.dir}"/>
        <mkdir dir="${target.dir}"/>
        <mkdir dir="${target.dir}/com"/>
        <mkdir dir="${target.dir}/com/jide"/>
    </target>

    <target name="mavenify" depends="init"
            description="Main target for Mavenifying a Jide dist">

        <echo message="Release version: ${release.version}"/>
        <echo />

        <!--Loop over all jar files in the distribution. Note that properties aren't used within the iteration. Not allowed to owerwrite properties in Ant.-->
        <for param="file">
            <path>
                <fileset dir="${distribution.dir}" includes="jide-*.jar"/>
            </path>

            <sequential>
                <!--Get the module name by using basename on the jar file. Note that the strange name "moduleName@{file}"
                is due to that it isn't possible to overwrite properties during iterations-->
                <basename property="moduleName@{file}" file="@{file}" suffix=".jar"/>

                <!--Debugging purposes-->
                <echo message="${moduleName@{file}}"/>

                <!--Create directory structure-->
                <mkdir dir="${target.repo.dir}/${moduleName@{file}}"/>
                <mkdir dir="${target.repo.dir}/${moduleName@{file}}/${release.version}"/>

                <!--Copy jar file-->
                <copy file="${distribution.dir}/${moduleName@{file}}.jar"
                      tofile="${target.repo.dir}/${moduleName@{file}}/${release.version}/${moduleName@{file}}-${release.version}.jar"/>
                <!--Copy and filter pom file-->
                <copy file="jide-template.pom.xml"
                      tofile="${target.repo.dir}/${moduleName@{file}}/${release.version}/${moduleName@{file}}-${release.version}.pom">
                    <filterset>
                        <filter token="JIDE_ARTIFACT_ID" value="${moduleName@{file}}"/>
                        <filter token="JIDE_VERSION" value="${release.version}"/>
                    </filterset>
                </copy>
                
            </sequential>
            
        </for>

        <zip basedir="${target.dir}" destfile="jide.${release.version}-Maven-Style.zip"/>
    </target>

</project>

