Mercurial > repos > mvdbeek > docker_toolfactory
diff DockerToolFactory.xml @ 0:0fa46413d0d9 draft
planemo upload for repository https://bitbucket.org/mvdbeek/dockertoolfactory/ commit 2f33eb59c06ac3d6ba6e22622fd4ae729eb5e4da-dirty
author | mvdbeek |
---|---|
date | Sat, 03 Oct 2015 08:34:39 -0400 |
parents | |
children | f1efc9a69a40 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DockerToolFactory.xml Sat Oct 03 08:34:39 2015 -0400 @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<tool id="rgTF" name="docker_tool_factory" version="0.1.3"> + <description>Makes scripts into tools using Docker</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="9.10">ghostscript</requirement> + <requirement type="package" version="1.3.20">graphicsmagick</requirement> + <requirement type="package" version="0.4.0">docker-py</requirement> + </requirements> + <command interpreter="python"><![CDATA[ + DockerToolFactory.py --script_path "$runme" --interpreter "$interpreter" + --tool_name "$tool_name" --user_email "$__user_email__" + #if $generate_simple_output.make_TAB=="yes": + --output_tab "$tab_file" + #end if + #if $makeMode.make_Tool=="yes": + #if generate_simple_output.make_TAB=="yes": + --output_format "$out_format" + #end if + --make_Tool "$makeMode.make_Tool" + --tool_desc "$makeMode.tool_desc" + --tool_version "$makeMode.tool_version" + --new_tool "$new_tool" + --help_text "$helpme" + #if $make_HTML.value=="yes": + --include_dependencies "${makeMode.include_deps}" + #end if + #end if + #if $make_HTML.value=="yes": + --output_dir "$html_file.files_path" --output_html "$html_file" --make_HTML "yes" + #else: + --output_dir "." + #end if + #if $additional_parameters != 'None': + #for i in $additional_parameters: + --additional_parameters + "$i.param_name, $i.param_value" + #end for + #end if + #if $input_files != 'None': + --input_tab + #for i in $input_files: + $i.input + #end for + #for i in $input_files: + --input_format + #if str($i.in_format) == "None": + "Any" + #else + "$i.in_format" + #end if + #end for + #end if + ]]> + </command> + <configfiles> + <configfile name="runme">$dynScript</configfile> + <configfile name="helpme"> + #if $makeMode.make_Tool == "yes": + ${makeMode.help_text} + #end if + </configfile> + </configfiles> + <inputs> + <repeat name="input_files" title="Select input files"> + help="Most scripts will need an input - your script MUST be ready for whatever format you choose"/> + <param name="in_format" type="select" optional="true" multiple="true" + label="Optional: Select the allowed input datatype(s) for your tool/script"> + <options from_parameter="tool.app.datatypes_registry.upload_file_formats"> + <column name="value" index="0"/> + </options> + </param> + </repeat> + <repeat name="additional_parameters" title="Set additional parameters"> + <param name="param_name" type="text" value="parameter_name" label="Choose a parameter name" size="20"> + <sanitizer invalid_char=""> + <valid initial="string.letters,string.digits"> + <add value="@_."/> + </valid> + > + </sanitizer> + </param> + <param name="param_value" type="text" value="parameter_value" label="Enter a parameter value" size="50"> + <sanitizer> + <valid initial="string.printable"> + </valid> + <mapping initial="none"/> + </sanitizer> + </param> + </repeat> + <param name="tool_name" type="text" value="My dynamic script" label="New tool ID and title for outputs" + size="60" + help="This will become the toolshed repository name so please choose thoughtfully to avoid namespace clashes with other tool writers"> + <sanitizer invalid_char=""> + <valid initial="string.printable"/> + </sanitizer> + </param> + <conditional name="makeMode"> + <param name="make_Tool" type="select" label="Create a tar.gz file ready for local toolshed entry" + help="Ready to deploy securely!" size="60"> + <option value="yes">Generate a Galaxy ToolShed compatible toolshed.gz</option> + <option value="" selected="true">No. Just run the script please</option> + </param> + <when value="yes"> + <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" + type="text" value="0.01" + help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/> + <param name="tool_desc" label="Tool Description" type="text" value="" size="40" + help="Supply a brief tool description for the Galaxy tool menu entry (optional - appears after the tool name)"/> + <param name="help_text" label="Tool form documentation and help text for users" type="text" area="true" + size="8x120" value="**What it Does**" + help="Supply the brief user documentation to appear on the new tool form as reStructured text - http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html"> + <sanitizer> + <valid initial="string.printable"> + </valid> + <mapping initial="none"/> + </sanitizer> + </param> + <param name="include_deps" type="select" + label="Include ghostscript and graphicsmagick dependencies in generated tool" size="60" + help="If an HTML file is being created, including dependencies is recommended. Otherwise this setting has no effect"> + <option value="">Rely on system ghostscript and graphicsmagick rather than include these as + dependencies + </option> + <option value="yes" selected="true">Include dependencies so target installations will always work if + HTML is being generated + </option> + </param> + + </when> + <when value=""> + </when> + </conditional> + <param name="out_format" type="text" value="txt" hidden="True"/> + <param name="make_HTML" type="select" + label="Create an HTML report with links to all output files and thumbnail links to PDF images" size="60" + help="Recommended for presenting complex outputs in an accessible manner. Turn off for simple tools so they just create one output"> + <option value="yes">Yes, arrange all outputs produced by my script as an HTML output</option> + <option value="" selected="true">No, no HTML output file thanks</option> + </param> + <conditional name="generate_simple_output"> + <param name="make_TAB" type="select" + label="Create a new history output alongside the HTML file specified above" + help="This is useful if your script creates a single new tabular file you want to appear in the history after the tool executes"> + <option value="yes" selected="true">My script writes to a new history output</option> + <option value="no">I do not want a new history output file</option> + </param> + <when value="yes"> + <param name="out_format" type="select" label="Select the datatype that your tool/script produces" + help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" optional="True"> + <options from_parameter="tool.app.datatypes_registry.upload_file_formats"> + <column name="value" index="0"/> + </options> + </param> + </when> + <when value="no"> + <param name="out_format" type="text" value="txt" optional="True" hidden="True"/> + </when> + </conditional> + <param name="interpreter" type="select" label="Select the interpreter for your code"> + <option value="Rscript" selected="true">Rscript</option> + <option value="python">python</option> + <option value="perl">perl</option> + <option value="sh">sh</option> + </param> + <param name="dynScript" label="Copy and paste the script to be executed here" type="text" value="" area="True" + size="8x120" + help="Script must deal with two command line parameters: Path to input tabular file path (or 'None' if none selected) and path to output tabular history file (or 'None')."> + <sanitizer> + <valid initial="string.printable"> + </valid> + <mapping initial="none"/> + </sanitizer> + </param> + </inputs> + <outputs> + <!-- <data format_source="input" name="tab_file" label="${tool_name}.${out_format}"> --> + <data format_source="input" name="tab_file"> + <filter>generate_simple_output['make_TAB'] == "yes"</filter> + <actions> + <action type="format"> + <option type="from_param" name="out_format"/> + </action> + </actions> + </data> + <data format="html" name="html_file" label="${tool_name}.html"> + <filter>make_HTML == "yes"</filter> + </data> + <data format="toolshed.gz" name="new_tool" label="${tool_name}.toolshed.gz"> + <filter>makeMode['make_Tool'] == "yes"</filter> + </data> + </outputs> + <tests> + <test> + <param name="interpreter" value="Rscript"/> + <param name="make_HTML" value="yes"/> + <param name="generate_simple_output|makeTAB" value="no"/> + <param name="out_format" value="txt"/> + <param name="dynScript" value="for (i in 1:10) {; foo = runif(100); bar = rnorm(100); bar = foo + bar; pdf("anotherplot.pdf"); plot(1,2); dev.off();}"/> + <output name="html_file" file="html_output/My_dynamic_script_html.html" compare="diff"/> + </test> + </tests> + <expand macro="help_macro"/> +</tool>