class Amigrind::Builder

Public Class Methods

new(aws_credentials, blueprint, repo) click to toggle source
# File lib/amigrind/builder.rb, line 9
def initialize(aws_credentials, blueprint, repo)
  @blueprint = blueprint
  @repo = repo

  @amigrind_client = Amigrind::Core::Client.new(@blueprint.aws.region, aws_credentials)
end

Public Instance Methods

build() click to toggle source
# File lib/amigrind/builder.rb, line 16
def build
  lint
  template = rackerize

  run(template)
end
lint() click to toggle source
# File lib/amigrind/builder.rb, line 23
def lint
  errors = []

  errors << "No channel set in the blueprint; this will result in " \
            "an image that can only be retrieved via :latest, which " \
            "you may not want." if @blueprint.build_channel.nil?

  errors.each { |e| warn_log(e) }
end
rackerize() click to toggle source
# File lib/amigrind/builder.rb, line 33
def rackerize
  template = Build::Rackerizer.new(@amigrind_client, @blueprint, @repo).rackerize
end

Private Instance Methods

run(template) click to toggle source
# File lib/amigrind/builder.rb, line 39
def run(template)
  runner = Build::PackerRunner.new(template, @amigrind_client, @blueprint, @repo)

  runner.run
end