class Quay::CLI

Public Class Methods

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

Public Instance Methods

init(dir=nil) click to toggle source
# File lib/quay/cli.rb, line 18
def init(dir=nil)
  target = dir ? File.join(dir, 'Quayfile') : 'Quayfile'
  copy_file('Quayfile', target)
end
run_task(name) click to toggle source
# File lib/quay/cli.rb, line 32
def run_task(name)
  config = Quay::Config.eval_from_path(options[:config])
  task = config.tasks[name]
  raise Thor::Error.new("unknown task #{name.inspect}") if task.nil?

  Array(task[:depends]).each do |dependency|
    puts "starting #{dependency}"
    Container.start(dependency, config.services[dependency])
  end

  container = Container.start(name, task)

  puts "Started #{name} #{container.id[0...12]}"
  container.attach do |stream, chunk|
    puts "#{stream}: #{chunk}"
  end

  Array(task[:depends]).each do |dependency|
    puts "stopping #{dependency}"
    Container.stop(dependency, config.services[dependency])
  end
end
services() click to toggle source
# File lib/quay/cli.rb, line 56
def services
  config = Quay::Config.eval_from_path(options[:config])
  state = Quay::State.new
  lines = config.services.keys.sort.map do |service|
    id = state.containers[service]
    if id
      container = Docker::Container.get(id)
      [service, container.id[0...12]]
    else
      [service, nil]
    end
  end
  puts "DEPENDENCY CONTAINER_ID"
  puts lines.map{|col| col.join(" ") }.join("\n")
end
start(name) click to toggle source
# File lib/quay/cli.rb, line 73
def start(name)
  config = Quay::Config.eval_from_path(options[:config])
  service = config.services[name]

  raise Thor::Error.new("unknown service #{name.inspect}") if service.nil?

  container = Container.start(name, service)
  puts "Started #{name} #{container.id[0...12]}"
end
stop(name) click to toggle source
# File lib/quay/cli.rb, line 84
def stop(name)
  config = Quay::Config.eval_from_path(options[:config])
  service = config.services[name]

  raise Thor::Error.new("unknown service #{name.inspect}") if service.nil?

  container = Container.stop(name, service)
  if container.nil?
    puts "Skipping #{name}"
  else
    puts "Stopped #{name} #{container.id[0...12]}"
  end
end
tasks() click to toggle source
# File lib/quay/cli.rb, line 24
def tasks
  config = Quay::Config.eval_from_path(options[:config])
  config.tasks.each do |name, _|
    puts name
  end
end
version() click to toggle source
# File lib/quay/cli.rb, line 13
def version
  puts "Quay Version #{VERSION}"
end