<project name="Jet CI Steps" default="none">
    <import file="build.xml" optional="false"/>

    <property name="build.number" value="snapshot"/>
    <property name="jdk16.home" value="${java.home}"/>
    <property name="fail.on.plugin.verifier.error" value="true"/>

    <property name="version_substitute_dir" value="${basedir}/versions_temp/" />

    <property name="artifact.output.path" value="${basedir}/out/artifacts"/>
    <property name="plugin.xml" value="idea/src/META-INF/plugin.xml"/>
    <property name="plugin.xml.bk" value="${version_substitute_dir}/plugin.xml.bk"/>
    <property name="plugin.xml.versioned" value="${plugin.xml}.versioned" />

    <property name="compiler.version.java" value="compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/KotlinVersion.java"/>
    <property name="compiler.version.java.bk" value="${version_substitute_dir}/KotlinVersion.java.bk"/>
    <property name="compiler.version.java.versioned" value="${compiler.version.java}.versioned" />

    <property name="plugin.zip" value="${artifact.output.path}/kotlin-plugin-${build.number}.zip" />
    <property name="bare.plugin.zip" value="${artifact.output.path}/kotlin-bare-plugin-${build.number}.zip" />

    <macrodef name="echoprop">
        <attribute name="prop"/>
        <sequential>
            <echo>@{prop}=${@{prop}}</echo>
        </sequential>
    </macrodef>

    <echoprop prop="os.name"/>
    <echoprop prop="os.version"/>
    <echoprop prop="os.arch"/>
    <echoprop prop="java.home"/>
    <echoprop prop="java.vendor"/>
    <echoprop prop="java.version"/>
    <echoprop prop="user.name"/>
    <echoprop prop="user.home"/>
    <echoprop prop="user.dir"/>

    <target name="cleanupArtifacts">
        <delete dir="${artifact.output.path}" includes="*"/>
    </target>

    <macrodef name="substituteVersionInFile">
      <attribute name="target.file"/>
      <attribute name="test.string"/>
      <attribute name="target.file.bk" default="@{target.file}.bk"/>
      <attribute name="target.file.versioned" default="@{target.file}.versioned"/>
      <attribute name="token.key" default="snapshot"/>
      <attribute name="version" default="${build.number}"/>
      <sequential>
        <!-- Create backup. Backup will be restored after build end. This will allow to rebuild project without renew
             plugin.xml from repository. -->
        <copy file="@{target.file}" tofile="@{target.file.bk}"/>

        <!-- Check that version has correct pattern for substitution -->
        <copy todir="">
            <fileset file="@{target.file.bk}">
                <contains text="@{test.string}"/>
            </fileset>
            <filterchain>
                <replacetokens>
                    <token key="@{token.key}" value="@{version}"/>
                </replacetokens>
            </filterchain>
            <mergemapper to="@{target.file.versioned}"/>
        </copy>

        <!-- If file doesn't exist - there's a problem with original plugin.xml. Probably there's a bad pattern used for version -->
        <copy file="@{target.file.versioned}" tofile="@{target.file}" overwrite="true"/>

        <delete file="@{target.file.versioned}" quiet="true"/>
      </sequential>
    </macrodef>

    <target name="writeVersionToTemplateFiles">
      <mkdir dir="${version_substitute_dir}"/>

      <substituteVersionInFile
          target.file="${plugin.xml}"
          target.file.bk="${plugin.xml.bk}"
          target.file.versioned="${plugin.xml.versioned}"
          test.string="&lt;version&gt;@snapshot@&lt;/version&gt;"/>

      <substituteVersionInFile
          target.file="${compiler.version.java}"
          target.file.bk="${compiler.version.java.bk}"
          target.file.versioned="${compiler.version.java.versioned}"
          test.string="public static final String VERSION = &quot;@snapshot@&quot;;"/>
    </target>

  <target name="revertTemplateFiles">
      <copy file="${plugin.xml.bk}" tofile="${plugin.xml}" overwrite="true"/>
      <copy file="${compiler.version.java.bk}" tofile="${compiler.version.java}" overwrite="true"/>

      <delete dir="${version_substitute_dir}" quiet="true"/>
  </target>

    <target name="pre_build" depends="writeVersionToTemplateFiles, cleanupArtifacts"/>

    <target name="zipArtifacts">
        <macrodef name="zipPlugin">
            <attribute name="filename"/>
            <attribute name="dir"/>

            <sequential>
                <zip destfile="@{filename}">
                    <zipfileset prefix="@{dir}" dir="${artifact.output.path}/@{dir}" excludes="kotlinc/bin/*"/>
                    <zipfileset prefix="@{dir}/kotlinc/bin" dir="${artifact.output.path}/@{dir}/kotlinc/bin" includes="*.bat" filemode="644"/>
                    <zipfileset prefix="@{dir}/kotlinc/bin" dir="${artifact.output.path}/@{dir}/kotlinc/bin" excludes="*.bat" filemode="755"/>
                </zip>
                <delete dir="${artifact.output.path}/@{dir}" quiet="true"/>
            </sequential>
        </macrodef>

        <zipPlugin filename="${plugin.zip}" dir="Kotlin"/>
        <zipPlugin filename="${bare.plugin.zip}" dir="BareKotlin"/>
    </target>

    <target name="post_build" depends="zipArtifacts, revertTemplateFiles"/>

    <target name="none">
        <fail message="Either specify pre_build or post_build"/>
    </target>
</project>
