class Foreman::Engine::CLI
def map_colors
def map_colors colors = Hash.new("white") @names.values.each_with_index do |name, index| colors[name] = FOREMAN_COLORS[index % FOREMAN_COLORS.length] end colors["system"] = "bright_white" colors end
def name_padding
def name_padding @name_padding ||= begin index_padding = @names.values.map { |n| formation[n] }.max.to_s.length + 1 name_padding = @names.values.map { |n| n.length + index_padding }.sort.last [ 6, name_padding.to_i ].max end end
def output(name, data)
def output(name, data) data.to_s.lines.map(&:chomp).each do |message| output = "" output += $stdout.color(@colors[name.split(".").first].to_sym) output += "#{Time.now.strftime("%H:%M:%S")} " if options[:timestamp] output += "#{pad_process_name(name)} | " output += $stdout.color(:reset) output += message $stdout.puts output $stdout.flush end rescue Errno::EPIPE terminate_gracefully end
def pad_process_name(name)
def pad_process_name(name) name.ljust(name_padding, " ") end
def proctitle(title)
def proctitle(title) $0 = title end
def shutdown
def shutdown end
def startup
def startup @colors = map_colors proctitle "foreman: main" unless Foreman.windows? Color.enable($stdout, options[:color]) end
def termtitle(title)
def termtitle(title) printf("\033]0;#{title}\007") unless Foreman.windows? end