class EY::CLI::UI
Public Instance Methods
agree(message, default)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 121 def agree(message, default) Prompter.agree(message, default) end
ask(message, password = false, default = nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 125 def ask(message, password = false, default = nil) Prompter.ask(message, password, default) rescue EOFError return '' end
debug(name, message = nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 101 def debug(name, message = nil) if ENV["DEBUG"] name = name.inspect unless name.nil? or name.is_a?(String) message = message.inspect unless message.nil? or message.is_a?(String) say_with_status(name, message, :blue) end end
deployment_result(dep)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 232 def deployment_result(dep) if dep.successful? say 'Deployment was successful.', :green elsif dep.finished_at.nil? say 'Deployment is not finished.', :yellow else say 'Deployment failed.', :red end end
deployment_status(deployment)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 202 def deployment_status(deployment) unless quiet? say "# Status of last deployment of #{deployment.app_environment.hierarchy_name}:" say "#" show_deployment(deployment) say "#" end deployment_result(deployment) end
err()
click to toggle source
# File lib/engineyard/cli/ui.rb, line 265 def err $stderr end
error(name, message = nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 85 def error(name, message = nil) $stdout = $stderr say_with_status(name, message, :red) ensure $stdout = STDOUT end
info(message, color = nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 96 def info(message, color = nil) return if quiet? say_with_status(message, nil, color) end
interactive?()
click to toggle source
# File lib/engineyard/cli/ui.rb, line 117 def interactive? Prompter.interactive? end
mute_if(bool) { || ... }
click to toggle source
# File lib/engineyard/cli/ui.rb, line 131 def mute_if(bool, &block) bool ? mute(&block) : yield end
out()
click to toggle source
# File lib/engineyard/cli/ui.rb, line 269 def out $stdout end
print_envs(apps, default_env_name = nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 177 def print_envs(apps, default_env_name = nil) apps.sort_by {|app| "#{app.account.name}/#{app.name}" }.each do |app| puts "#{app.account.name}/#{app.name}" if app.environments.any? app.environments.sort_by {|env| env.name }.each do |env| icount = env.instances_count iname = case icount when 0 then "(stopped)" when 1 then "1 instance" else "#{icount} instances" end name = env.name == default_env_name ? "#{env.name} (default)" : env.name framework_env = env.framework_env && "[#{env.framework_env.center(12)}]" puts " #{name.ljust(30)} #{framework_env} #{iname}" end else puts " (No environments)" end puts "" end end
print_exception(e)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 242 def print_exception(e) if e.message.empty? || (e.message == e.class.to_s) message = nil else message = e.message end if ENV["DEBUG"] error(e.class, message) e.backtrace.each{|l| say(" "*3 + l) } else error(message || e.class.to_s) end end
print_help(table)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 257 def print_help(table) print_table(table, ident: 2, truncate: true, colwidth: 20) end
print_hostnames(servers, username=nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 145 def print_hostnames(servers, username=nil) server_tuples(servers, username).each do |server_tuple| puts server_tuple.first end end
print_servers(servers, name, username=nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 157 def print_servers(servers, name, username=nil) tuples = server_tuples(servers, username) count = tuples.size puts "# #{count} server#{count == 1 ? '' : 's'} on #{name}" host_width = tuples.map {|s| s[0].length }.max host_format = "%-#{host_width}s" # "%-10s" left align role_width = tuples.map {|s| s[2].length }.max role_format = "%-#{role_width}s" # "%-10s" left align tuples.each do |server_tuple| puts "#{host_format}\t%s\t#{role_format}\t%s" % server_tuple end end
print_simple_envs(envs)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 173 def print_simple_envs(envs) puts envs.map{|env| env.name }.uniq.sort end
print_simple_servers(servers, username=nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 151 def print_simple_servers(servers, username=nil) server_tuples(servers, username).each do |server_tuple| puts server_tuple.join("\t") end end
say_with_status(name, message=nil, color=nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 109 def say_with_status(name, message=nil, color=nil) if message say_status name, message, color elsif name say name, color end end
set_color(string, color, bold=false)
click to toggle source
Calls superclass method
# File lib/engineyard/cli/ui.rb, line 261 def set_color(string, color, bold=false) ($stdout.tty? || ENV['THOR_SHELL']) ? super : string end
show_deployment(dep)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 212 def show_deployment(dep) return if quiet? output = [] output << ["Account", dep.app.account.name] output << ["Application", dep.app.name] output << ["Environment", dep.environment.name] output << ["Input Ref", dep.ref] output << ["Resolved Ref", dep.resolved_ref] output << ["Commit", dep.commit || '(not resolved)'] output << ["Migrate", dep.migrate] output << ["Migrate command", dep.migrate_command] if dep.migrate output << ["Deployed by", dep.deployed_by] output << ["Started at", dep.created_at] if dep.created_at output << ["Finished at", dep.finished_at] if dep.finished_at output.each do |att, val| puts "#\t%-16s %s" % ["#{att}:", val.to_s] end end
warn(name, message = nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 92 def warn(name, message = nil) say_with_status(name, message, :yellow) end
Private Instance Methods
server_tuples(servers, username=nil)
click to toggle source
# File lib/engineyard/cli/ui.rb, line 135 def server_tuples(servers, username=nil) user = username && "#{username}@" servers.map do |server| host = "#{user}#{server.hostname}" [host, server.amazon_id, server.role, server.name] end end