server/bin/make in vulcan-0.4.0 vs server/bin/make in vulcan-0.5.0
- old
+ new
@@ -8,21 +8,53 @@
id = ARGV.shift
require "couchrest"
require "fileutils"
require "tmpdir"
-
+require "rest_client"
+
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"]
+ deps = doc["deps"] || ""
File.open("input.tgz", "wb") do |file|
file.print doc.fetch_attachment("input")
+ end
+
+ deps.split(",").each_with_index do |dep, index|
+ puts "downloading #{dep}"
+ File.open("dep_#{index}.tgz", "wb") do |file|
+ begin
+ file.print RestClient.get(dep)
+ rescue Exception => ex
+ puts ex.inspect
+ end
+ end
+ end
+
+ FileUtils.mkdir_p "deps"
+
+ Dir.chdir("deps") do
+ deps.split(",").each_with_index do |dep, index|
+ %x{ tar xzf ../dep_#{index}.tgz 2>&1 }
+ end
+ end
+
+ unless deps.empty?
+ ENV["LDFLAGS"] ||= ""
+ ENV["LDFLAGS"] += " -L%s/deps/lib" % dir
+
+ ENV["CFLAGS"] ||= ""
+ ENV["CFLAGS"] += " -I%s/deps/include" % dir
+
+ ENV["CXXFLAGS"] ||= ""
+ ENV["CXXFLAGS"] += " -I%s/deps/include" % dir
end
FileUtils.mkdir_p "input"
Dir.chdir("input") do