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'):