Mercurial > repos > peterjc > mira4_9_mirabait
changeset 1:33bfaf5865c5 draft default tip
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_9 commit cd0ab853082e608d5646638b2d46489480616436
author | peterjc |
---|---|
date | Tue, 13 Oct 2015 10:01:25 -0400 |
parents | 5979f13c2dc5 |
children | |
files | tools/mira4_9/mirabait/mira_check_version.py tools/mira4_9/mirabait/tool_dependencies.xml |
diffstat | 2 files changed, 106 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/mira4_9/mirabait/mira_check_version.py Tue Oct 13 10:01:25 2015 -0400 @@ -0,0 +1,105 @@ +#!/usr/bin/env python +"""A simple wrapper script to call a MIRA binary to check/report its version. + +Syntax: mira_check_version.py binary [expected pattern] + +The binary can be a full path, otherwise ``$PATH`` is searched as normal. + +Example output from MIRA V3.4 suite installed on the ``$PATH``:: + + $ python mira_check_version.py mira + This is MIRA V3.4.1.1 (production version). + $ python mira_check_version.py mirabait + V3.4.1.1 + +Example output from MIRA v4.0.2:: + + $ python mira_check_version.py ~/downloads/mira_4.0.2_linux-gnu_x86_64_static/bin/mira + 4.0.2 + $ python mira_check_version.py ~/downloads/mira_4.0.2_linux-gnu_x86_64_static/bin/mirabait + 4.0.2 + $ python mira_check_version.py ~/downloads/mira_4.0.2_linux-gnu_x86_64_static/bin/miraconvert + 4.0.2 + +Example output from MIRA v4.9.5:: + + $ python mira_check_version.py ~/downloads/mira_4.9.5_2_linux-gnu_x86_64_static/bin/mira + 4.9.5_2 + $ python mira_check_version.py ~/downloads/mira_4.9.5_2_linux-gnu_x86_64_static/bin/mirabait + 4.9.5_2 + $ python mira_check_version.py ~/downloads/mira_4.9.5_2_linux-gnu_x86_64_static/bin/miraconvert + 4.9.5_2 + +The optional version checking is simple substring approach (beware of potential +issues if MIRA versions ever use double digits for minor version), and returns +zero if this matched:: + + $ python mira_check_version.py mirabait 4.9 && echo "Return value $?" + 4.9.5_2 + Return value 0 + +If the expected version did not match, the return value is one (error):: + + $ python mira_check_version.py mirabait 4.9 && echo "Return value $?" + Expected MIRA v4.9, but mirabait reports: V3.4.1.1 + Return value 1 + +This script is intended to be used as part of my Galaxy wrappers for MIRA, +where it will capture and record the version used - and give a clear error +message if there is a version mismatch (otherwise due to API changes the +MIRA error messages tend to be very long and somewhare confusing). +""" +import os +import sys +import subprocess +import shutil +import time + +WRAPPER_VER = "0.0.1" #Keep in sync with the XML file + +def sys_exit(msg, err=1): + sys.stderr.write(msg+"\n") + sys.exit(err) + + +def get_version(mira_binary): + """Run MIRA to find its version number""" + # At the commend line I would use: mira -v | head -n 1 + # however there is some pipe error when doing that here. + cmd = [mira_binary, "-v"] + try: + child = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + except Exception, err: + sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (" ".join(cmd), err)) + sys.exit(1) + ver, tmp = child.communicate() + del child + #Workaround for -v not working in mirabait 4.0RC4 + if "invalid option" in ver.split("\n", 1)[0]: + for line in ver.split("\n", 1): + if " version " in line: + line = line.split() + return line[line.index("version")+1].rstrip(")") + sys_exit("Could not determine MIRA version:\n%s" % ver) + return ver.split("\n", 1)[0] + + +if "-v" in sys.argv or "--version" in sys.argv: + print("mira_check_version.py version %s" % WRAPPER_VER) + sys.exit(0) + +if len(sys.argv) == 2: + mira_binary = sys.argv[1] + expected = None +elif len(sys.argv) == 3: + mira_binary = sys.argv[1] + expected = sys.argv[2] +else: + sys_exit("Usage: mira_check_version.py mira_binary [expected version]") + +mira_ver = get_version(mira_binary) +if expected and not mira_ver.strip().startswith(expected): + sys_exit("Expected MIRA v%s, but %s reports: %s" % (expected, mira_binary, mira_ver)) +print(mira_ver)
--- a/tools/mira4_9/mirabait/tool_dependencies.xml Wed Oct 07 10:36:55 2015 -0400 +++ b/tools/mira4_9/mirabait/tool_dependencies.xml Tue Oct 13 10:01:25 2015 -0400 @@ -1,7 +1,7 @@ <?xml version="1.0"?> <tool_dependency> <package name="samtools" version="1.2"> - <repository changeset_revision="9cd278d52bb6" name="package_samtools_1_2" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" /> + <repository changeset_revision="192f00129358" name="package_samtools_1_2" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" /> </package> <package name="MIRA" version="4.9.5"> <repository changeset_revision="645a9fb69d42" name="package_mira_4_9_5" owner="peterjc" toolshed="https://testtoolshed.g2.bx.psu.edu" />