From 4bfa2f62fb1b04d8e05e5edca17fab319bbc4f8b Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Tue, 21 Jun 2016 17:56:26 +0100 Subject: [PATCH 1/2] Fix for py34-lint --- lib/galaxy/jobs/runners/util/job_script/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/jobs/runners/util/job_script/__init__.py b/lib/galaxy/jobs/runners/util/job_script/__init__.py index edd8fb31b9a..d77281ecc5d 100644 --- a/lib/galaxy/jobs/runners/util/job_script/__init__.py +++ b/lib/galaxy/jobs/runners/util/job_script/__init__.py @@ -4,6 +4,7 @@ import subprocess import time from pkg_resources import resource_string +from six import text_type from galaxy.util import unicodify DEFAULT_SHELL = '/bin/sh' @@ -96,7 +97,7 @@ def check_script_integrity(config): def write_script(path, contents, config, mode=0o755): with open(path, 'w') as f: - if isinstance(contents, unicode): + if isinstance(contents, text_type): contents = contents.encode("UTF-8") f.write(contents) os.chmod(path, mode) From 89890d4f60452a9fc55d924fd960f4bd72ddbb12 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Tue, 21 Jun 2016 17:46:18 +0100 Subject: [PATCH 2/2] Fix move_directory_files tool dependency action when destination is not empty Historically this action moves the contents of the source directory to the destination directory. Commit d38936bd8d9b3612dc0718859067e299651e6c86 broke the install when e.g. the destination is $INSTALL_DIR, which is created by Galaxy and is not empty (contains INSTALLATION.log after first action). --- .../tool_dependencies/recipe/step_handler.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py index ed480293ba7..b12e9d0a673 100755 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py @@ -847,11 +847,17 @@ class MoveDirectoryFiles( RecipeStep ): def move_directory_files( self, current_dir, source_dir, destination_dir ): source_directory = os.path.abspath( os.path.join( current_dir, source_dir ) ) - destination_directory = os.path.join( destination_dir ) - destination_parent_directory = os.path.dirname(destination_directory) - if not os.path.isdir( destination_parent_directory ): - os.makedirs( destination_parent_directory ) - shutil.move( source_directory, destination_directory ) + destination_directory = os.path.abspath(os.path.join(destination_dir)) + if not os.path.isdir(destination_directory): + os.makedirs(destination_directory) + for dir_entry in os.listdir(source_directory): + source_entry = os.path.join(source_directory, dir_entry) + if os.path.islink(source_entry): + destination_entry = os.path.join(destination_directory, dir_entry) + os.symlink(os.readlink(source_entry), destination_entry) + os.remove(source_entry) + else: + shutil.move(source_entry, destination_directory) def prepare_step( self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download ): #