diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2017-01-22 18:33:30 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2017-01-22 18:33:30 +0900 |
commit | 4d928001b85ddc864ac9f6cb4afd5c8a52b99fe5 (patch) | |
tree | c351cf765a010203b5c62b7d81acbf8bff19d595 /src | |
parent | c4baa6a10c5bc7d0b2d530fdb3b1bfeeb262974c (diff) |
Update release script to upload assets in parallel
Diffstat (limited to 'src')
-rwxr-xr-x | src/update_assets.rb | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/update_assets.rb b/src/update_assets.rb index 2fd9edc2..b4aaba54 100755 --- a/src/update_assets.rb +++ b/src/update_assets.rb @@ -23,21 +23,23 @@ end # List assets assets = Hash[rel['assets'].map { |a| a.values_at *%w[name id] }] -files.select { |f| File.exists? f }.each do |file| - name = File.basename file - - if asset_id = assets[name] - puts "#{name} found. Deleting asset id #{asset_id}." - RestClient.delete "#{base}/assets/#{asset_id}", - :authorization => "token #{token}" - else - puts "#{name} not found" +files.select { |f| File.exists? f }.map do |file| + Thread.new do + name = File.basename file + + if asset_id = assets[name] + puts "#{name} found. Deleting asset id #{asset_id}." + RestClient.delete "#{base}/assets/#{asset_id}", + :authorization => "token #{token}" + else + puts "#{name} not found" + end + + puts "Uploading #{name}" + RestClient.post( + "#{base.sub 'api', 'uploads'}/#{rel['id']}/assets?name=#{name}", + File.read(file), + :authorization => "token #{token}", + :content_type => "application/octet-stream") end - - puts "Uploading #{name}" - RestClient.post( - "#{base.sub 'api', 'uploads'}/#{rel['id']}/assets?name=#{name}", - File.read(file), - :authorization => "token #{token}", - :content_type => "application/octet-stream") -end +end.each(&:join) |