X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/985d4a785e3df9af520fa171e3483b53eca40088..e3a4fe6e461ec3ffde76e973ada7abae52faf050:/apps/workbench/app/controllers/actions_controller.rb?ds=sidebyside diff --git a/apps/workbench/app/controllers/actions_controller.rb b/apps/workbench/app/controllers/actions_controller.rb index bd182d4e88..9a76e9aed4 100644 --- a/apps/workbench/app/controllers/actions_controller.rb +++ b/apps/workbench/app/controllers/actions_controller.rb @@ -73,10 +73,11 @@ class ActionsController < ApplicationController def arv_normalize mt, *opts r = "" IO.popen(['arv-normalize'] + opts, 'w+b') do |io| - io.write mt - io.close_write - while buf = io.read(2**16) - r += buf + io.write mt + io.close_write + while buf = io.read(2**16) + r += buf + end end r end @@ -85,7 +86,17 @@ class ActionsController < ApplicationController lst = [] files = [] params["selection"].each do |s| - m = CollectionsHelper.match(s) + a = ArvadosBase::resource_class_for_uuid s + m = nil + if a == Link + begin + m = CollectionsHelper.match(Link.find(s).head_uuid) + rescue + end + else + m = CollectionsHelper.match(s) + end + if m and m[1] and m[2] lst.append(m[1] + m[2]) files.append(m) @@ -117,7 +128,7 @@ class ActionsController < ApplicationController d = Digest::MD5.new() d << normalized_stripped - newuuid = "#{d.hexdigest}+#{normalized.length}" + newuuid = "#{d.hexdigest}+#{normalized_stripped.length}" env = Hash[ENV]. merge({ @@ -131,10 +142,9 @@ class ActionsController < ApplicationController }) IO.popen([env, 'arv-put', '--raw'], 'w+b') do |io| - io.write normalized + io.write normalized_stripped io.close_write - while buf = io.read(2**20) - + while buf = io.read(2**16) end end