lib/capistrano/asg/rolling/logger.rb
# frozen_string_literal: true
module Capistrano
module ASG
module Rolling
# Logging support.
class Logger
def initialize(verbose: false)
@verbose = verbose
end
def info(text)
$stdout.puts format_text(text)
end
def warning(text)
$stdout.puts format_text("WARNING: #{text}")
end
def error(text)
$stderr.puts format_text(text, color: :red) # rubocop:disable Style/StderrPuts
end
def verbose(text)
info(text) if @verbose
end
private
def format_text(text, color: nil)
text = colorize_text(text, color) if color
text.gsub(/\*\*(.+?)\*\*/, bold_text('\\1'))
end
def bold_text(text)
"\e[1m#{text}\e[22m"
end
def colorize_text(text, color)
_color.colorize(text, color)
end
def _color
@_color ||= SSHKit::Color.new($stdout)
end
end
end
end
end