<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->
<project name="DojoZipInstaller">

    <property name="dojo.version" value="${dojoVersion}"/>
	<echo message="${dojo.version}"/>
	<property name="dojo.zip" value="${localRepository}/org/dojotoolkit/dojo/${dojo.version}/dojo-${dojo.version}.zip"/>
	<echo message="${dojo.zip}"/>
    <property name="unpack.location" value="${basedir}/src/main/resources/dojo"/>
	<echo message="${unpack.location}"/>


    <target name="check-dojo-installed">
        <condition property="already.installed" >
            <available file="${localRepository}/org/dojotoolkit/dojo/${dojo.version}/dojo-${dojo.version}.zip"/>
        </condition>
    </target>

    <target name="check-dojo-unpacked">
        <condition property="already.unpacked" >
            <available file="${unpack.location}"/>
        </condition>
    </target>

    <target name="unpack-dojo-files" depends="check-dojo-installed, check-dojo-unpacked" unless="already.unpacked">
        <fail message="dojo zip file not installed in local repository: ${localRepository}" unless="already.installed"/>
        <mkdir dir="${basedir}/target/dojo-unpack-temp/"/>
        <unzip src="${dojo.zip}"
               dest="${basedir}/target/dojo-unpack-temp/"
               overwrite="false"
        	   encoding="native-encoding">
            <patternset>
                <include name="dojo-${dojo.version}/dojo/**"/>
                <exclude name="dojo-${dojo.version}/dojo/tests/**"/>
                <include name="dojo-${dojo.version}/dijit/**"/>
                <include name="dojo-${dojo.version}/dojox/**"/>
                <include name="dojo-${dojo.version}/util/**"/>
            </patternset>
        </unzip>
        <move file="${basedir}/target/dojo-unpack-temp/dojo-${dojo.version}"
              tofile="${unpack.location}"
              verbose="true"/>
        <delete dir="${basedir}/target/dojo-unpack-temp/"/>
    </target>

    <target name="clean-dojo-files">
        <delete dir="${unpack.location}"/>
    </target>
</project>
