lib/vmc/cli/app/instances.rb
require "vmc/cli/app/base"
module VMC::App
class Instances < Base
desc "List an app's instances"
group :apps, :info, :hidden => true
input :apps, :desc => "Applications whose instances to list",
:argument => :splat, :singular => :app,
:from_given => by_name(:app)
def instances
apps = input[:apps]
fail "No applications given." if apps.empty?
spaced(apps) do |app|
instances =
with_progress("Getting instances for #{c(app.name, :name)}") do
app.instances
end
line unless quiet?
spaced(instances.sort { |a, b| a.id.to_i <=> b.id.to_i }) do |i|
if quiet?
line i.id
else
display_instance(i)
end
end
end
end
private
def display_instance(i)
start_line "instance #{c("\##{i.id}", :instance)}: "
puts "#{b(c(i.state.downcase, state_color(i.state)))}"
indented do
if s = i.since
line "started: #{c(s.strftime("%F %r"), :neutral)}"
end
if d = i.debugger
line "debugger: port #{b(d[:port])} at #{b(d[:ip])}"
end
if c = i.console
line "console: port #{b(c[:port])} at #{b(c[:ip])}"
end
end
end
end
end