blob: d48196a860fdd546f4925205ec364c213181d8f2 [file] [log] [blame]
<project name="Node.js utils" xmlns:if="ant:if" xmlns:unless="ant:unless">
<import file="common.xml" optional="false"/>
<!-- Expected that these properties will be overridden by system properties -->
<property name="kotlin.deploy.version" value="0.0.0"/>
<property name="kotlin.compiler.deploy.version" value="0.0.0"/>
<property name="kotlin.npmjs.auth.token" value="AUTH"/>
<property name="node.version" value="v6.3.1"/>
<property name="node.dir" value="${dependencies}/node"/>
<property name="node.executable" value="${node.dir}/bin/node"/>
<target name="download-nodejs-and-npm" depends="make-dependency-dirs">
<property name="linux-x86" value="linux-x86"/>
<property name="platform" value="win-x86" if:set="isWindows"/>
<property name="platform" value="darwin-x64" if:set="isMac"/>
<property name="platform" value="${linux-x86}" if:set="isLinux"/>
<property name="node.tar.gz" value="${dependencies}/download/node.tar.gz"/>
<property name="node.exe" value="${node.executable}.exe"/>
<property name="node.name.prefix" value="${platform}" unless:set="isWindows"/>
<property name="node.name.prefix" value="${linux-x86}" if:set="isWindows"/>
<property name="node.full.name" value="node-${node.version}-${node.name.prefix}"/>
<property name="url.node.tar.gz" value="https://nodejs.org/dist/${node.version}/${node.full.name}.tar.gz"/>
<property name="url.node.exe" value="https://nodejs.org/dist/${node.version}/${platform}/node.exe"/>
<get src="${url.node.tar.gz}" dest="${node.tar.gz}" usetimestamp="true"/>
<exec executable="tar" unless:set="isWindows">
<arg value="-zxf"/>
<arg path="${node.tar.gz}"/>
<arg value="-C"/>
<arg path="${dependencies}"/>
</exec>
<untar src="${node.tar.gz}" dest="${dependencies}" compression="gzip" if:set="isWindows"/>
<move file="${dependencies}/${node.full.name}" tofile="${dependencies}/node"/>
<delete dir="${dependencies}/${node.full.name}"/>
<delete file="${node.tar.gz}"/>
<sequential if:set="isWindows">
<get src="${url.node.exe}" dest="${node.exe}" usetimestamp="true"/>
</sequential>
</target>
<macrodef name="node">
<attribute name="dir" default="."/>
<attribute name="failonerror" default="true"/>
<element name="args" implicit="true"/>
<sequential>
<exec executable="${node.executable}" dir="@{dir}" failonerror="@{failonerror}">
<args/>
</exec>
</sequential>
</macrodef>
<macrodef name="npm">
<attribute name="command"/>
<attribute name="dir" default="."/>
<attribute name="failonerror" default="true"/>
<element name="args" optional="true" implicit="true"/>
<sequential>
<node dir="@{dir}" failonerror="@{failonerror}">
<arg file="${node.dir}/lib/node_modules/npm/bin/npm-cli.js"/>
<arg value="@{command}"/>
<args/>
</node>
</sequential>
</macrodef>
<macrodef name="publish-to-npm">
<attribute name="template"/>
<attribute name="version"/>
<element name="actions" optional="true" implicit="true"/>
<sequential>
<property name="deploy_to_npm_dir" value="${output}/deploy_to_npm"/>
<property name="package_deploy_dir" value="${deploy_to_npm_dir}/@{template}"/>
<delete dir="${deploy_to_npm_dir}"/>
<mkdir dir="${deploy_to_npm_dir}"/>
<copy todir="${package_deploy_dir}">
<fileset dir="js/npm.templates/@{template}"/>
</copy>
<actions/>
<npm command="version" dir="${package_deploy_dir}">
<arg value="@{version}"/>
</npm>
<npm command="publish" dir="${package_deploy_dir}">
<arg value="--//registry.npmjs.org/:_authToken=${kotlin.npmjs.auth.token}"/>
</npm>
</sequential>
</macrodef>
<target name="publish-kotlin-js-to-npm">
<publish-to-npm template="kotlin" version="${kotlin.deploy.version}">
<copy file="${js.stdlib.output.dir}/kotlin.js" todir="${package_deploy_dir}" failonerror="true" />
<copy file="${js.stdlib.output.dir}/kotlin.meta.js" todir="${package_deploy_dir}" failonerror="true" />
</publish-to-npm>
</target>
<target name="publish-kotlin-compiler-to-npm">
<publish-to-npm template="kotlin-compiler" version="${kotlin.compiler.deploy.version}">
</publish-to-npm>
</target>
<!-- Used on TeamCity-->
<target name="unzip-jslib.jar">
<unzip src="${output}/kotlinc/lib/kotlin-jslib.jar" dest="${js.stdlib.output.dir}"/>
</target>
</project>