diff build.xml @ 6:b8f70d8216b3 draft

planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit b3a4e34cf9356447ae3507cc6fe2ff6a1f24afbc-dirty
author prog
date Mon, 27 Mar 2017 06:27:29 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build.xml	Mon Mar 27 06:27:29 2017 -0400
@@ -0,0 +1,396 @@
+<project name="w4m.tool.lcmsmatching" default="all">
+
+	<dirname property="this.dir" file="${ant.file.w4m.tool.lcmsmatching}"/>
+	<property name="conda.dir" value="${user.home}/w4m-conda"/>
+	<property name="planemo.dir" value="${user.home}/.planemo"/>
+
+	<!--~~~~~~~~~~~~~~~~~
+	~ PUBLIC PROPERTIES ~
+	~~~~~~~~~~~~~~~~~~-->
+
+	<!-- These properties can be set when calling Ant: `ant -DPROP=value ...`. -->
+
+	<property name="TIMESTAMP" value="true"/>
+	<property name="VERSION" value="true"/>
+	<property name="DIST.TEST" value="true"/>
+	<property name="TOOL.PREFIX" value="$__tool_directory__/"/>
+	<property name="PKG.PREFIX" value="w4m-tool-lcmsmatching"/>
+
+	<!--~~~~~~~~~~~~~~~~~~~
+	~ INTERNAL PROPERTIES ~
+	~~~~~~~~~~~~~~~~~~~~-->
+
+	<!-- Version -->
+	<property name="version" value="2.1.3"/>
+	<condition property="version.suffix" value="" else="-${version}">
+		<isfalse value="${VERSION}"/>
+	</condition>
+
+	<!-- Distribution directories -->
+	<property name="dist.dir" value="dist"/>
+	<property name="dist.code.dir" value="${dist.dir}/code"/>
+	<property name="dist.test.dir" value="${dist.dir}/test"/>
+
+	<!-- Tool XML paths -->
+	<property name="tool.xml" value="lcmsmatching.xml"/>
+	<property name="orig.tool.xml" value="${tool.xml}"/>
+	<property name="dest.tool.xml" value="${dist.code.dir}/${tool.xml}"/>
+
+	<!-- Time stamp -->
+	<tstamp/>
+	<property name="timestamp" value="${DSTAMP}-${TSTAMP}"/>
+	<condition property="timestamp.suffix" value="" else="-${timestamp}">
+		<isfalse value="${TIMESTAMP}"/>
+	</condition>
+
+	<!-- Package -->
+	<property name="pkg.ext" value="tar.gz"/>
+	<property name="pkg.name" value="${PKG.PREFIX}${version.suffix}${timestamp.suffix}"/>
+	<property name="pkg.path" value="${dist.dir}/${pkg.name}.${pkg.ext}"/>
+
+	<!--~~~
+	~ ALL ~
+	~~~~~-->
+
+	<target name="all"/>
+
+	<!--~~~~
+	~ DIST ~
+	~~~~~-->
+
+	<target name="dist" depends="dist.code,dist.tar,dist.test"/>
+
+	<!--~~~~~~~~
+	~ DIST W4M ~
+	~~~~~~~~~-->
+
+	<target name="dist.w4m" depends="w4m.code,dist.tar,dist.test"/>
+
+	<!--~~~~~~~~~
+	~ DIST TEST ~
+	~~~~~~~~~~-->
+
+	<target name="dist.test" if="${DIST.TEST}">
+
+		<!-- Make temp dir -->
+		<delete dir="${dist.test.dir}"/>
+		<mkdir dir="${dist.test.dir}"/>
+
+		<!-- Extract package in temp dir -->
+		<untar src="${pkg.path}" dest="${dist.test.dir}" compression="gzip"/>
+		<chmod file="${dist.test.dir}/search-mz" perm="u+x"/> <!-- This file should be already executable, since it has been put executable inside the tar. It seems the untar task of Ant does not handle the file permissions. -->
+
+		<!-- Run search-mz on sample input file -->
+		<exec executable="${dist.test.dir}/search-mz" failonerror="true">
+			<arg value="-d"/>
+			<arg value="file"/>
+			<arg value="--url"/>
+			<arg value="test/filedb.tsv"/>
+			<arg value="-m"/>
+			<arg value="pos"/>
+			<arg value="-i"/>
+			<arg value="test/mzrt-input.tsv"/>
+			<arg value="-o"/>
+			<arg value="mzrt-output.tsv"/>
+		</exec>
+
+	</target>
+
+	<!--~~~~~~~~
+	~ W4M CODE ~
+	~~~~~~~~~-->
+
+	<target name="w4m.code" depends="dist.code">
+
+		<!-- Copy and transform tool XML file. -->
+		<copy file="${orig.tool.xml}" tofile="${dest.tool.xml}"/>
+
+		<!-- Copy python script. -->
+		<copy todir="${dist.code.dir}">
+			<fileset dir="." includes="*.py"/>
+		</copy>
+	</target>
+
+	<!--~~~~~~~~~
+	~ DIST CODE ~
+	~~~~~~~~~~-->
+
+	<target name="dist.code">
+
+		<!-- Clean directory -->
+		<delete dir="${dist.code.dir}"/>
+		<mkdir dir="${dist.code.dir}"/>
+
+		<!-- Copy R code -->
+		<copy todir="${dist.code.dir}">
+			<fileset dir="." includes="search-mz,*.R"/>
+		</copy>
+
+	</target>
+
+	<!--~~~~~~~~
+	~ DIST TAR ~
+	~~~~~~~~~-->
+
+	<target name="dist.tar">
+
+		<!-- Build tar file -->
+		<tar destfile="${pkg.path}" compression="gzip">
+
+			<!-- Include script with execution rights -->
+			<tarfileset dir="${dist.code.dir}" filemode="755">
+				<include name="search-mz"/>
+			</tarfileset>
+
+			<!-- Include remaining code and data files -->
+			<tarfileset dir="${dist.code.dir}">
+				<include name="**"/>
+				<exclude name="search-mz"/>
+			</tarfileset>
+		</tar>
+	</target>
+
+	<!--~~~~~
+	~ CLEAN ~
+	~~~~~~-->
+
+	<target name="clean">
+		<delete dir="${dist.dir}"/>
+		<delete dir="${conda.dir}"/>
+		<delete dir="${planemo.dir}"/>
+	</target>
+
+	<!--~~~~~~~~~~~
+	~ GALAXY TEST ~
+	~~~~~~~~~~~~-->
+
+	<target name="galaxy.test" depends="planemo.lint,planemo.test"/>
+
+	<!--~~~~~~~~~~~~
+	~ PLANEMO LINT ~
+	~~~~~~~~~~~~~-->
+
+	<target name="planemo.lint" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="lint"/>
+			<arg value="--no_xsd"/>
+			<arg value="${tool.xml}"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~
+	~ PLANEMO TEST ~
+	~~~~~~~~~~~~~-->
+
+	<target name="planemo.test" depends="planemo.conda.install">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="test"/>
+			<arg value="--conda_prefix"/>
+			<arg value="${conda.dir}"/>
+			<arg value="--galaxy_branch"/>
+			<arg value="release_16.01"/>
+			<arg value="--conda_dependency_resolution"/>
+			<arg value="${tool.xml}"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO CONDA INSTALL ~
+	~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.conda.install" depends="planemo.conda.init,planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="conda_install"/>
+			<arg value="--conda_prefix"/>
+			<arg value="${conda.dir}"/>
+			<arg value="${tool.xml}"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~
+	~ PLANEMO CONDA INIT ~
+	~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.conda.init">
+		<exec executable="planemo" failonerror="true">
+			<arg value="conda_init"/>
+			<arg value="--conda_prefix"/>
+			<arg value="${conda.dir}"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~
+	~ PLANEMO SHED LINT ~
+	~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.shed.lint" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_lint"/>
+			<arg value="--tools"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TEST TOOLSHED CREATE ~
+	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.testtoolshed.create" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_create"/>
+			<arg value="--shed_target"/>
+			<arg value="testtoolshed"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TEST TOOLSHED DIFF ~
+	~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.testtoolshed.diff" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_diff"/>
+			<arg value="--shed_target"/>
+			<arg value="testtoolshed"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TEST TOOLSHED UPDATE ~
+	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.testtoolshed.update" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_update"/>
+			<arg value="--check_diff"/>
+			<arg value="--shed_target"/>
+			<arg value="testtoolshed"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TEST TOOLSHED TEST ~
+	~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.testtoolshed.test" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_test"/>
+			<arg value="--shed_target"/>
+			<arg value="testtoolshed"/>
+			<arg value="--install_galaxy"/>
+			<arg value="--galaxy_branch"/>
+			<arg value="release_16.01"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TOOLSHED CREATE ~
+	~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.toolshed.create" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_create"/>
+			<arg value="--shed_target"/>
+			<arg value="toolshed"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TOOLSHED DIFF ~
+	~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.toolshed.diff" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_diff"/>
+			<arg value="--shed_target"/>
+			<arg value="toolshed"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~~~~~~~~~~~~~
+	~ PLANEMO TOOLSHED UPDATE ~
+	~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+	<target name="planemo.toolshed.update" depends="planemo.env">
+		<exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
+			<arg value="shed_update"/>
+			<arg value="--check_diff"/>
+			<arg value="--shed_target"/>
+			<arg value="toolshed"/>
+		</exec>
+	</target>
+
+	<!--~~~~~~~~~~~
+	~ PLANEMO ENV ~
+	~~~~~~~~~~~~-->
+
+	<target name="planemo.env" depends="w4m.code">
+		<chmod file="${dist.code.dir}/search-mz" perm="u+x"/>
+		<ant dir="test" target="input.files"/>
+		<mkdir dir="${dist.code.dir}/test-data"/>
+		<copy todir="${dist.code.dir}/test-data">
+			<fileset dir="test" includes="filedb.tsv"/>
+			<fileset dir="test" includes="mz-input-small.tsv"/>
+			<fileset dir="test/res" includes="filedb-small-mz-match-*"/>
+		</copy>
+		<copy file="shed.yml" tofile="${dist.code.dir}/.shed.yml"/>
+	</target>
+
+	<!--************************************************
+	******************** DEPRECATED ********************
+	*************************************************-->
+
+	<!--~~~~~~~~~~~~~
+	~ UPDATE W4M VM ~
+	~~~~~~~~~~~~~~-->
+
+	<!-- This task is used when developping, for updating quickly the tool inside the local W4M virtual machine. -->
+	<target name="update.w4m.vm" depends="clean,dist">
+
+		<property name="w4m.login" value="galaxy@w4m"/>
+		<property name="tool.path" value="galaxy-pfem/tools/metabolomics/annotation/lcmsmatching"/>
+
+		<!-- Stop Galaxy -->
+		<exec executable="ssh" failonerror="true">
+			<arg value="${w4m.login}"/>
+			<arg value="/sbin/service galaxy stop"/>
+		</exec>
+
+		<!-- Remove current tool version -->
+		<exec executable="ssh" failonerror="true">
+			<arg value="${w4m.login}"/>
+			<arg value="rm -rf ${tool.path}"/>
+		</exec>
+
+		<!-- Remove old packages on W4M instance -->
+		<exec executable="ssh" failonerror="true">
+			<arg value="${w4m.login}"/>
+			<arg value="rm -f ${PKG.PREFIX}-*.${pkg.ext}"/>
+		</exec>
+
+		<!-- Copy new package on W4M instance -->
+		<exec executable="scp" failonerror="true">
+			<arg value="${dist.dir}/${pkg.name}.${pkg.ext}"/>
+			<arg value="${w4m.login}:."/>
+		</exec>
+
+		<!-- Make tool directory -->
+		<exec executable="ssh" failonerror="true">
+			<arg value="${w4m.login}"/>
+			<arg value="mkdir -p ${tool.path}"/>
+		</exec>
+
+		<!-- Install new tool version -->
+		<exec executable="ssh" failonerror="true">
+			<arg value="${w4m.login}"/>
+			<arg value="tar -xzf ${pkg.name}.${pkg.ext} -C ${tool.path}"/>
+		</exec>
+
+		<!-- Restart Galaxy -->
+		<exec executable="ssh" failonerror="true">
+			<arg value="${w4m.login}"/>
+			<arg value="/sbin/service galaxy start"/>
+		</exec>
+
+	</target>
+
+</project>