summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2017-01-22 18:33:30 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2017-01-22 18:33:30 +0900
commit4d928001b85ddc864ac9f6cb4afd5c8a52b99fe5 (patch)
treec351cf765a010203b5c62b7d81acbf8bff19d595
parentc4baa6a10c5bc7d0b2d530fdb3b1bfeeb262974c (diff)
Update release script to upload assets in parallel
-rwxr-xr-xsrc/update_assets.rb36
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)