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 153c4f53f9f..312a82e0b39 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 ): #