Mercurial > repos > gga > chado_feature_delete_features
changeset 10:52fe2a335964 draft
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/chado commit 0b135f1ea2623ea68e41ac88e13d99e6b4ad8bea
author | gga |
---|---|
date | Mon, 08 Jul 2019 05:33:59 -0400 |
parents | 4c973d69c8e6 |
children | 926dbc8a33a1 |
files | feature_delete_features.xml macros.xml prepare_psql.sh |
diffstat | 3 files changed, 100 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/feature_delete_features.xml Tue Mar 05 05:13:53 2019 -0500 +++ b/feature_delete_features.xml Mon Jul 08 05:33:59 2019 -0400 @@ -7,7 +7,7 @@ <expand macro="requirements"/> <code file="chado.py"/> <command detect_errors="aggressive"><![CDATA[ -@AUTH@ +@START_PSQL@ && chakin feature delete_features @@ -25,17 +25,22 @@ #end if | jq -S . > '$results' + +&& @ZIP_PSQL@ ]]></command> <inputs> - <!-- options --> - <param argument="--organism" type="select" dynamic_options="list_organisms()" label="Organism" /> - <param argument="--analysis_id" type="select" dynamic_options="list_analyses()" label="Analysis" /> - <param name="name" label="Name" argument="--name" type="text" help="name filter" /> - <param name="uniquename" label="Uniquename" argument="--uniquename" type="text" help="uniquename filter" /> - + <expand macro="psql_target"/> + <!-- options --> + <param argument="--organism" type="select" dynamic_options="list_organisms()" label="Organism" /> + <param argument="--analysis_id" type="select" dynamic_options="list_analyses()" label="Analysis" /> + <param name="name" label="Name" argument="--name" type="text" help="name filter" /> + <param name="uniquename" label="Uniquename" argument="--uniquename" type="text" help="uniquename filter" /> </inputs> <outputs> <data format="json" name="results"/> + <data format="postgresql" name="outfile" from_work_dir="postgresql_out.tar.bz2" label="${tool.name} on ${on_string}"> + <filter>psql_target['method'] == "pgtools"</filter> + </data> </outputs> <help> Get all or some features
--- a/macros.xml Tue Mar 05 05:13:53 2019 -0500 +++ b/macros.xml Mon Jul 08 05:33:59 2019 -0400 @@ -2,12 +2,16 @@ <macros> <xml name="requirements"> <requirements> - <requirement type="package" version="2.2.5">python-chado</requirement> + <requirement type="package" version="2.2.6">python-chado</requirement> <requirement type="package" version="1.5">jq</requirement> + <requirement type="package" version="@PG_VERSION@">postgresql</requirement> + <requirement type="package" version="0.1">pglite</requirement> <yield/> </requirements> </xml> + <token name="@PG_VERSION@">11.2</token> + <xml name="stdio"> <stdio> <regex level="fatal" match="Exception:" source="stderr" /> @@ -16,7 +20,7 @@ </stdio> </xml> - <token name="@WRAPPER_VERSION@">2.2.5</token> + <token name="@WRAPPER_VERSION@">2.2.6</token> <xml name="citation"> <citations> @@ -32,19 +36,6 @@ <token name="@HELP@"><![CDATA[ ]]></token> - <token name="@AUTH@"><![CDATA[ - echo "__default: local" > '.auth.yml' && - echo "local:" >> '.auth.yml' && - echo " dbhost: \"\$GALAXY_CHADO_DBHOST\"" >> '.auth.yml' && - echo " dbname: \"\$GALAXY_CHADO_DBNAME\"" >> '.auth.yml' && - echo " dbpass: \"\$GALAXY_CHADO_DBPASS\"" >> '.auth.yml' && - echo " dbuser: \"\$GALAXY_CHADO_DBUSER\"" >> '.auth.yml' && - echo " dbschema: \"\$GALAXY_CHADO_DBSCHEMA\"" >> '.auth.yml' && - echo " dbport: \"\$GALAXY_CHADO_DBPORT\"" >> '.auth.yml' && - - CHAKIN_GLOBAL_CONFIG_PATH='.auth.yml' - ]]></token> - <xml name="sanitized"> <sanitizer> <valid initial="string.printable"> @@ -83,4 +74,63 @@ label="Sequence type of the parent" help="this should be a Sequence Ontology term" /> </xml> + + <xml name="psql_target"> + <conditional name="psql_target"> + <param name="method" type="select" label="Chado Database" help="If you select 'Remote database' make sure credentials are defined in environment variables"> + <option value="remote">Remote database</option> + <option value="pgtools">Database from history</option> + </param> + <when value="remote"/> + <when value="pgtools"> + <param name="infile" type="data" format="postgresql" label="Input database" /> + <param name="schema" type="text" label="Schema containing Chado tables" value="public" help="Can be 'chado' for a Tripal database"/> + </when> + </conditional> + </xml> + + <token name="@AUTH@"><![CDATA[ + if [ -z "$CHAKIN_GLOBAL_CONFIG_PATH" ]; then + echo "__default: local" > '.auth.yml' && + echo "local:" >> '.auth.yml' && + echo " dbhost: \"\$GALAXY_CHADO_DBHOST\"" >> '.auth.yml' && + echo " dbname: \"\$GALAXY_CHADO_DBNAME\"" >> '.auth.yml' && + echo " dbpass: \"\$GALAXY_CHADO_DBPASS\"" >> '.auth.yml' && + echo " dbuser: \"\$GALAXY_CHADO_DBUSER\"" >> '.auth.yml' && + echo " dbschema: \"\$GALAXY_CHADO_DBSCHEMA\"" >> '.auth.yml' && + echo " dbport: \"\$GALAXY_CHADO_DBPORT\"" >> '.auth.yml' && + + export CHAKIN_GLOBAL_CONFIG_PATH='.auth.yml' + ; fi + ]]></token> + + <token name="@START_PSQL@"><![CDATA[ + #if $psql_target.method == 'pgtools' + tar -xjvf '$psql_target.infile' > /dev/null && + . '$__tool_directory__/prepare_psql.sh' '$psql_target.schema' + #else + @AUTH@ + #end if + ]]></token> + + <token name="@STOP_PSQL@"><![CDATA[ + #if $psql_target.method == 'pgtools' + pglite stop -d ./postgresql && + timeout 60 bash -c 'until pglite status -d ./postgresql | grep -F -q "no server running"; do sleep 1; done' + ; + ## Make sure psql is stopped even if loading script failed + pglite stop -d ./postgresql || true + #end if + ]]></token> + + <token name="@ZIP_PSQL@"><![CDATA[ + #if $psql_target.method == 'pgtools' + pglite stop -d ./postgresql && + timeout 60 bash -c 'until pglite status -d ./postgresql | grep -F -q "no server running"; do sleep 1; done' && + tar -cvjf postgresql_out.tar.bz2 postgresql > /dev/null + ; + ## Make sure psql is stopped even if loading script failed + pglite stop -d ./postgresql || true + #end if + ]]></token> </macros>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prepare_psql.sh Mon Jul 08 05:33:59 2019 -0400 @@ -0,0 +1,23 @@ +#!/bin/bash + +export PWD=`pwd` && +sed -i.bak "s|unix_socket_directories.*|unix_socket_directories = '$PWD/postgresql/'|" ./postgresql/db/postgresql.conf && + +pglite start -d ./postgresql && + +timeout 60 bash -c 'until pglite status -d ./postgresql | grep -F -q "server is running"; do sleep 1; done' && +pglite status -d ./postgresql && +timeout 60 bash -c 'until ls -la ./postgresql | grep -F -q ".s.PGSQL.5432"; do sleep 1; done' && +pglite status -d ./postgresql && + +echo "__default: local" > '.auth.yml' && +echo "local:" >> '.auth.yml' && +echo " dbhost: \"xxx\"" >> '.auth.yml' && +echo " dbname: \"xxx\"" >> '.auth.yml' && +echo " dbpass: \"xxx\"" >> '.auth.yml' && +echo " dbuser: \"xxx\"" >> '.auth.yml' && +echo " dbschema: \"$1\"" >> '.auth.yml' && +echo " dbport: \"xxx\"" >> '.auth.yml' && +echo " dburl: \"$(pglite url -d ./postgresql)\"" >> '.auth.yml' && + +export CHAKIN_GLOBAL_CONFIG_PATH='.auth.yml'