Sha256: abc3ef34ecdc8454dc4cc9da55f1a9e2ef6d572663519e296a2520598b70453a

Contents?: true

Size: 921 Bytes

Versions: 13

Compression:

Stored size: 921 Bytes

Contents

#!/usr/bin/env ruby

ENV["GEM_HOME"] = File.expand_path("../../vendor/gems", __FILE__)
ENV["GEM_PATH"] = File.expand_path("../../vendor/gems", __FILE__)

require "rubygems"

id  = ARGV.shift

require "couchrest"
require "fileutils"
require "tmpdir"

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"

    Dir.chdir("input") do
      %x{ tar xzf ../input.tgz 2>&1 }
      system command
    end

    Dir.chdir(prefix) do
      %x{ tar czf #{dir}/output.tgz * 2>&1 }
    end

    retries = 0
    begin
      doc.put_attachment("output", File.open("#{dir}/output.tgz"))
    rescue RestClient::Conflict
      retries += 1
      retry if retries < 3
    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
vulcan-0.3.0 server/bin/make
vulcan-0.2.4 server/bin/make
vulcan-0.2.3 server/bin/make
vulcan-0.2.2 server/bin/make
vulcan-0.2.1 server/bin/make
vulcan-0.2.0 server/bin/make
vulcan-0.1.6 server/bin/make
vulcan-0.1.5 server/bin/make
vulcan-0.1.4 server/bin/make
vulcan-0.1.3 server/bin/make
vulcan-0.1.2 server/bin/make
vulcan-0.1.1 server/bin/make
vulcan-0.1.0 server/bin/make