Class: EY::CLI::UI

Inherits:
Object
  • Object
show all
Defined in:
lib/engineyard/cli/ui.rb

Defined Under Namespace

Classes: Prompter, Tee

Instance Method Summary collapse

Instance Method Details

#agree(message, default) ⇒ Object



120
121
122
# File 'lib/engineyard/cli/ui.rb', line 120

def agree(message, default)
  Prompter.agree(message, default)
end

#ask(message, password = false, default = nil) ⇒ Object



124
125
126
127
128
# File 'lib/engineyard/cli/ui.rb', line 124

def ask(message, password = false, default = nil)
  Prompter.ask(message, password, default)
rescue EOFError
  return ''
end

#debug(name, message = nil) ⇒ Object



100
101
102
103
104
105
106
# File 'lib/engineyard/cli/ui.rb', line 100

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) ⇒ Object



178
179
180
181
182
183
184
185
186
# File 'lib/engineyard/cli/ui.rb', line 178

def deployment_result(dep)
  if dep.successful?
    info 'This deployment was successful.'
  elsif dep.finished_at.nil?
    warn 'This deployment is not finished.'
  else
    say_with_status('This deployment failed.', nil, :red)
  end
end

#errObject



211
212
213
# File 'lib/engineyard/cli/ui.rb', line 211

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, message = nil)
  $stdout = $stderr
  say_with_status(name, message, :red)
ensure
  $stdout = STDOUT
end

#info(name, message = nil) ⇒ Object



96
97
98
# File 'lib/engineyard/cli/ui.rb', line 96

def info(name, message = nil)
  say_with_status(name, message, :green)
end

#interactive?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/engineyard/cli/ui.rb', line 116

def interactive?
  Prompter.interactive?
end

#outObject



215
216
217
# File 'lib/engineyard/cli/ui.rb', line 215

def out
  $stdout
end


134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/engineyard/cli/ui.rb', line 134

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


188
189
190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/engineyard/cli/ui.rb', line 188

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


203
204
205
# File 'lib/engineyard/cli/ui.rb', line 203

def print_help(table)
  print_table(table, :ident => 2, :truncate => true, :colwidth => 20)
end


130
131
132
# File 'lib/engineyard/cli/ui.rb', line 130

def print_simple_envs(envs)
  puts envs.map{|env| env.name }.uniq.sort
end

#say_with_status(name, message = nil, color = nil) ⇒ Object



108
109
110
111
112
113
114
# File 'lib/engineyard/cli/ui.rb', line 108

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) ⇒ Object



207
208
209
# File 'lib/engineyard/cli/ui.rb', line 207

def set_color(string, color, bold=false)
  ($stdout.tty? || ENV['THOR_SHELL']) ? super : string
end

#show_deployment(dep) ⇒ Object



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/engineyard/cli/ui.rb', line 159

def show_deployment(dep)
  output = []
  output << ["Account",         dep.app..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, message = nil)
  say_with_status(name, message, :yellow)
end