class Vagrant::UI::Colored
This is a UI
implementation that outputs color for various types of messages. This should only be used with a TTY that supports color, but is up to the user of the class to verify this is the case.
Constants
- COLORS
Terminal colors
Public Instance Methods
color?()
click to toggle source
@return [true]
# File lib/vagrant/ui.rb, line 419 def color? return true end
format_message(type, message, **opts)
click to toggle source
This is called by ‘say` to format the message for output.
Calls superclass method
Vagrant::UI::Basic#format_message
# File lib/vagrant/ui.rb, line 424 def format_message(type, message, **opts) # Get the format of the message before adding color. message = super opts = @opts.merge(opts) # Special case some colors for certain message types opts[:color] = :red if type == :error opts[:color] = :green if type == :success opts[:color] = :yellow if type == :warn # If it is a detail, it is not bold. Every other message type # is bolded. bold = !!opts[:bold] colorseq = "#{bold ? 1 : 0 }" if opts[:color] && opts[:color] != :default color = COLORS[opts[:color]] colorseq += ";#{color}" end # Color the message and make sure to reset the color at the end "\033[#{colorseq}m#{message}\033[0m" end