Class: EY::CLI::UI
- Inherits:
-
Object
- Object
- EY::CLI::UI
- Defined in:
- lib/engineyard/cli/ui.rb
Defined Under Namespace
Instance Method Summary collapse
- #agree(message, default) ⇒ Object
- #ask(message, password = false, default = nil) ⇒ Object
- #debug(name, message = nil) ⇒ Object
- #deployment_result(dep) ⇒ Object
- #deployment_status(deployment) ⇒ Object
- #err ⇒ Object
- #error(name, message = nil) ⇒ Object
- #info(message, color = nil) ⇒ Object
- #interactive? ⇒ Boolean
- #out ⇒ Object
- #print_envs(apps, default_env_name = nil) ⇒ Object
- #print_exception(e) ⇒ Object
- #print_help(table) ⇒ Object
- #print_simple_envs(envs) ⇒ Object
- #say_with_status(name, message = nil, color = nil) ⇒ Object
- #set_color(string, color, bold = false) ⇒ Object
- #show_deployment(dep) ⇒ Object
- #warn(name, message = nil) ⇒ Object
Instance Method Details
#agree(message, default) ⇒ Object
121 122 123 |
# File 'lib/engineyard/cli/ui.rb', line 121 def agree(, default) Prompter.agree(, default) end |
#ask(message, password = false, default = nil) ⇒ Object
125 126 127 128 129 |
# File 'lib/engineyard/cli/ui.rb', line 125 def ask(, password = false, default = nil) Prompter.ask(, password, default) rescue EOFError return '' end |
#debug(name, message = nil) ⇒ Object
101 102 103 104 105 106 107 |
# File 'lib/engineyard/cli/ui.rb', line 101 def debug(name, = nil) if ENV["DEBUG"] name = name.inspect unless name.nil? or name.is_a?(String) = .inspect unless .nil? or .is_a?(String) say_with_status(name, , :blue) end end |
#deployment_result(dep) ⇒ Object
190 191 192 193 194 195 196 197 198 |
# File 'lib/engineyard/cli/ui.rb', line 190 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) ⇒ Object
160 161 162 163 164 165 166 167 168 |
# File 'lib/engineyard/cli/ui.rb', line 160 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 ⇒ Object
223 224 225 |
# File 'lib/engineyard/cli/ui.rb', line 223 def err $stderr end |
#error(name, message = nil) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/engineyard/cli/ui.rb', line 85 def error(name, = nil) $stdout = $stderr say_with_status(name, , :red) ensure $stdout = STDOUT end |
#info(message, color = nil) ⇒ Object
96 97 98 99 |
# File 'lib/engineyard/cli/ui.rb', line 96 def info(, color = nil) return if quiet? say_with_status(, nil, color) end |
#interactive? ⇒ Boolean
117 118 119 |
# File 'lib/engineyard/cli/ui.rb', line 117 def interactive? Prompter.interactive? end |
#out ⇒ Object
227 228 229 |
# File 'lib/engineyard/cli/ui.rb', line 227 def out $stdout end |
#print_envs(apps, default_env_name = nil) ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/engineyard/cli/ui.rb', line 135 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) ⇒ Object
200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
# File 'lib/engineyard/cli/ui.rb', line 200 def print_exception(e) if e..empty? || (e. == e.class.to_s) = nil else = e. end if ENV["DEBUG"] error(e.class, ) e.backtrace.each{|l| say(" "*3 + l) } else error( || e.class.to_s) end end |
#print_help(table) ⇒ Object
215 216 217 |
# File 'lib/engineyard/cli/ui.rb', line 215 def print_help(table) print_table(table, :ident => 2, :truncate => true, :colwidth => 20) end |
#print_simple_envs(envs) ⇒ Object
131 132 133 |
# File 'lib/engineyard/cli/ui.rb', line 131 def print_simple_envs(envs) puts envs.map{|env| env.name }.uniq.sort end |
#say_with_status(name, message = nil, color = nil) ⇒ Object
109 110 111 112 113 114 115 |
# File 'lib/engineyard/cli/ui.rb', line 109 def say_with_status(name, =nil, color=nil) if say_status name, , color elsif name say name, color end end |
#set_color(string, color, bold = false) ⇒ Object
219 220 221 |
# File 'lib/engineyard/cli/ui.rb', line 219 def set_color(string, color, bold=false) ($stdout.tty? || ENV['THOR_SHELL']) ? super : string end |
#show_deployment(dep) ⇒ Object
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/engineyard/cli/ui.rb', line 170 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) ⇒ Object
92 93 94 |
# File 'lib/engineyard/cli/ui.rb', line 92 def warn(name, = nil) say_with_status(name, , :yellow) end |