From 0f7dd52988269dc4567bdbbd71be0fd273741efd Mon Sep 17 00:00:00 2001 From: E Rasche Date: Wed, 13 Sep 2017 11:57:50 +0200 Subject: [PATCH] Copy changes over --- lib/galaxy/datatypes/converters/sam_to_bam.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/galaxy/datatypes/converters/sam_to_bam.py b/lib/galaxy/datatypes/converters/sam_to_bam.py index dcc84b6c518..011f660b922 100644 --- a/lib/galaxy/datatypes/converters/sam_to_bam.py +++ b/lib/galaxy/datatypes/converters/sam_to_bam.py @@ -34,18 +34,17 @@ def _get_samtools_version(): if not cmd_exists('samtools'): raise Exception('This tool needs samtools, but it is not on PATH.') # Get the version of samtools via --version-only, if available - p = subprocess.Popen(['samtools', '--version-only'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - output, error = p.communicate() - - # --version-only is available - # Format is +htslib- - if p.returncode == 0: + try: + output = subprocess.check_output(['samtools', '--version-only'], stderr=subprocess.PIPE) + # --version-only is available + # Format is +htslib- version = output.split('+')[0] return version + except subprocess.CalledProcessError: + # --version-only not available + pass - output = subprocess.Popen(['samtools'], stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[1] + output = subprocess.check_output(['samtools'], stderr=subprocess.PIPE) lines = output.split('\n') for line in lines: if line.lower().startswith('version'):