server/bin/make in vulcan-0.0.3 vs server/bin/make in vulcan-0.1.0
- old
+ new
@@ -4,23 +4,24 @@
ENV["GEM_PATH"] = File.expand_path("../../vendor/gems", __FILE__)
require "rubygems"
id = ARGV.shift
-command = ARGV.shift
-prefix = ARGV.shift
require "couchrest"
require "fileutils"
require "tmpdir"
-db = CouchRest.database!(ENV["CLOUDANT_URL"] + ":5984/make")
+db = CouchRest.database!(ENV["CLOUDANT_URL"] + "/make")
Dir.mktmpdir do |dir|
Dir.chdir(dir) do
doc = db.get(id)
+ command = doc["command"]
+ prefix = doc["prefix"]
+
File.open("input.tgz", "wb") do |file|
file.print doc.fetch_attachment("input")
end
FileUtils.mkdir_p "input"
@@ -32,8 +33,15 @@
Dir.chdir(prefix) do
%x{ tar czf #{dir}/output.tgz * 2>&1 }
end
- doc.put_attachment("output", File.open("#{dir}/output.tgz"))
+ retries = 0
+ begin
+ doc.put_attachment("output", File.open("#{dir}/output.tgz"))
+ rescue RestClient::Conflict
+ retries += 1
+ retry if retries < 3
+ end
+
end
end