class Drunker::CLI

Public Class Methods

exit_on_failure?() click to toggle source
# File lib/drunker/cli.rb, line 70
def self.exit_on_failure?
  true
end

Public Instance Methods

_run(image, *commands) click to toggle source
# File lib/drunker/cli.rb, line 18
def _run(image, *commands)
  loglevel = options[:debug] ? "DEBUG" : options[:loglevel].upcase
  logger = Logger.new(STDERR).tap do |logger|
    logger.level = Logger.const_get(loglevel)
    logger.formatter = Proc.new { |severity, _datetime, _progname, message| "#{severity}: #{message}\n" } unless loglevel == "DEBUG"
  end
  config = Drunker::Config.new(image: image,
                               commands: commands,
                               config: options[:config],
                               concurrency: options[:concurrency],
                               compute_type: options[:compute_type],
                               timeout: options[:timeout],
                               env: options[:env],
                               buildspec: options[:buildspec],
                               file_pattern: options[:file_pattern],
                               aggregator: options[:aggregator],
                               debug: options[:debug],
                               access_key: options[:access_key],
                               secret_key: options[:secret_key],
                               region: options[:region],
                               profile_name: options[:profile_name],
                               logger: logger)

  logger.info("Creating source....")
  source = Drunker::Source.new(Pathname.pwd, config: config, logger: logger)

  logger.info("Starting executor...")
  artifact = Drunker::Executor.new(source: source, config: config, logger: logger).run

  logger.info("Starting aggregator...")
  aggregator = Drunker::Aggregator.create(config)
  aggregator.run(artifact.layers)

  unless config.debug?
    logger.info("Deleting source...")
    source.delete
    logger.info("Deleting artifact...")
    artifact.delete
  end

  exit aggregator.exit_status(artifact.layers)
rescue Drunker::Config::InvalidConfigException => exn
  logger.error(exn.message)
  exit 1
end
version() click to toggle source
# File lib/drunker/cli.rb, line 66
def version
  puts "Drunker #{VERSION}"
end