From efa9e0fdd1d11d58f4a504a3e8242cc59f3f1416 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Tue, 10 Nov 2020 17:17:15 +0000 Subject: [PATCH] Fix command line for tools using `interpreter` when galaxy root contains spaces --- lib/galaxy/tools/evaluation.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/tools/evaluation.py b/lib/galaxy/tools/evaluation.py index b47b4039d46..45f21a22b6b 100644 --- a/lib/galaxy/tools/evaluation.py +++ b/lib/galaxy/tools/evaluation.py @@ -1,6 +1,7 @@ import json import logging import os +import shlex import tempfile @@ -494,11 +495,12 @@ class ToolEvaluator: raise if interpreter: # TODO: path munging for cluster/dataset server relocatability - executable = command_line.split()[0] + command_line_tokens = shlex.split(command_line) + executable = command_line_tokens[0] tool_dir = os.path.abspath(self.tool.tool_dir) abs_executable = os.path.join(tool_dir, executable) - command_line = command_line.replace(executable, abs_executable, 1) - command_line = interpreter + " " + command_line + command_line_tokens[0:1] = [interpreter, abs_executable] + command_line = ' '.join(map(shlex.quote, command_line_tokens)) self.command_line = command_line def __build_config_files(self):