<?xml version="1.0" encoding="UTF-8"?>
<project name="com.openexchange.i18n" default="install" basedir=".">

    <!-- Customizable values -->
    <property name="destdir" value=""/>
    <property name="prefix" value="/opt/open-xchange"/>

    <!-- Constants -->
    <property name="tmp.dir" value="tmp"/>
    <peoperty name="confDir" value="conf"/>

    <property file="META-INF/MANIFEST.MF"/>
    <property file="build.properties"/>

    <property name="version" value="${Bundle-Version}"/>
    <property name="bundle.name" value="${Bundle-SymbolicName}.jar"/>
    <property name="composite.name" value="open-xchange-i18n-${version}"/>

    <property name="msgfmt" value="msgfmt"/>

    <!-- Install Constants -->
    <property name="bundlesdir" value="${prefix}/bundles"/>
    <property name="gwbundle.d" value="${prefix}/etc/groupware/osgi/bundle.d"/>
    <property name="adbundle.d" value="${prefix}/etc/admindaemon/osgi/bundle.d"/>
    <property name="commonConfigDir" value="${prefix}/etc/common/"/>

    <!-- Bundle dependencies -->
    <property name="configreadBundle" value="com.openexchange.configread"/>

    <!-- JAR names for classpath -->
    <property name="osgijar" value="org.eclipse.osgi_3.6.1.R36x_v20100806.jar"/>
    <property name="commonsloggingjar" value="org.apache.commons.logging_1.0.4.v200706111724.jar"/>
    <property name="configjar" value="com.openexchange.configread.jar"/>
    <property name="globaljar" value="com.openexchange.global.jar"/>

    <!-- Classpath -->
    <path id="project.classpath">
        <pathelement location="${bundlesdir}/${osgijar}"/>
        <pathelement location="${bundlesdir}/${commonsloggingjar}"/>
        <pathelement location="${bundlesdir}/${configreadBundle}/${configjar}"/>
        <pathelement location="${bundlesdir}/${globaljar}"/>
    </path>

    <!-- Compile -->
    <target name="prepare">
        <mkdir dir="${output..}"/>
        <mkdir dir="${tmp.dir}"/>
    </target>

    <target name="compile" depends="prepare">
        <javac srcdir="${source..}" destdir="${output..}" debug="true" encoding="US-ASCII" source="1.5" compiler="javac1.5" target="1.5">
            <classpath refid="project.classpath"/>
        </javac>
    </target>

    <target name="jar" depends="prepare,compile">
        <jar jarfile="${tmp.dir}/${bundle.name}" manifest="META-INF/MANIFEST.MF">
            <fileset dir="${output..}"/>
        </jar>
    </target>

    <!-- Install targets -->
    <target name="install" depends="installJar,installConfig,installLanguages"/>

    <target name="installConfig">
        <copy todir="${destdir}/${commonConfigDir}">
            <fileset dir="${tmp.dir}/${confDir}"/>
        </copy>
        <!--<chmod perm="640">
            <fileset dir="${destdir}/${commonConfigDir}">
                <include name="**"/>
            </fileset>
        </chmod>-->
        <mkdir dir="${destdir}/${gwbundle.d}"/>
        <echo file="${destdir}/${gwbundle.d}/${Bundle-SymbolicName}.ini" message="${bundlesdir}/${bundle.name}@start${line.separator}"/>
        <mkdir dir="${destdir}/${adbundle.d}"/>
        <echo file="${destdir}/${adbundle.d}/${Bundle-SymbolicName}.ini" message="${bundlesdir}/${bundle.name}@start${line.separator}"/>
    </target>

    <target name="installLanguages">
        <mkdir dir="${destdir}/${prefix}/i18n"/>
        <antcall target="installLanguage">
            <param name="language" value="de_DE"/>
        </antcall>
        <antcall target="installLanguage">
            <param name="language" value="fr_FR"/>
        </antcall>
    </target>

    <target name="installLanguage">
        <copy todir="${destdir}/${prefix}/i18n">
            <fileset dir="${language}">
                <include name="server.${language}.po"/>
            </fileset>
        </copy>
    </target>

    <target name="installJar" depends="jar">
        <mkdir dir="${destdir}/${bundlesdir}"/>
        <copy todir="${destdir}/${bundlesdir}">
            <fileset dir="${tmp.dir}">
                <include name="${bundle.name}"/>
            </fileset>
        </copy>
    </target>

    <target name="patchConfig" depends="prepare">
        <property name="patchConfDir" value="${tmp.dir}/${confDir}"/>
        <mkdir dir="${patchConfDir}"/>
        <copy todir="${patchConfDir}" overwrite="true">
            <fileset dir="${confDir}">
                <exclude name="**CVS/**"/>
            </fileset>
        </copy>
        <replace dir="${patchConfDir}" includes="*.properties">
            <replacefilter token="@prefix@" value="${prefix}"/>
        </replace>
    </target>

    <!-- Dist -->
    <target name="dist" depends="clean">
        <property name="dist-package" value="dist-package"/>
        <delete dir="${dist-package}"/>
        <mkdir dir="${dist-package}/${composite.name}"/>
        <copy todir="${dist-package}/${composite.name}">
            <fileset dir=".">
                <exclude name="**${dist-package}/**"/>
                <exclude name="**debian/**"/>
                <exclude name="**CVS/**"/>
                <exclude name="Todo"/>
            </fileset>
        </copy>
        <tar destfile="../${composite.name}.tar.gz"
            basedir="${dist-package}"
            includes="${composite.name}/"
             compression="gzip"/>        <!-- dpkg-source does not like anything else -->
        <delete dir="${dist-package}"/>
    </target>

    <target name="clean">
        <delete dir="${output..}"/>
        <delete dir="${tmp.dir}"/>
    </target>

</project>
