101 lines
1.8 KiB
Ruby
101 lines
1.8 KiB
Ruby
# -*- coding: binary -*-
|
|
require 'rex/ui'
|
|
|
|
module Rex
|
|
module Ui
|
|
module Text
|
|
|
|
###
|
|
#
|
|
# This class implements text-based output but is not
|
|
# tied to an output medium.
|
|
#
|
|
###
|
|
class Output < Rex::Ui::Output
|
|
|
|
require 'rex/ui/text/output/stdio'
|
|
require 'rex/ui/text/output/socket'
|
|
require 'rex/ui/text/output/buffer'
|
|
require 'rex/ui/text/output/file'
|
|
require 'rex/ui/text/output/tee'
|
|
require 'rex/text/color'
|
|
|
|
include Rex::Text::Color
|
|
|
|
def initialize
|
|
@config = {
|
|
:color => :auto, # true, false, :auto
|
|
}
|
|
super
|
|
end
|
|
attr_reader :config
|
|
attr_accessor :input
|
|
|
|
def disable_color
|
|
@config[:color] = false
|
|
end
|
|
|
|
def enable_color
|
|
@config[:color] = true
|
|
end
|
|
|
|
def auto_color
|
|
@config[:color] = :auto
|
|
end
|
|
|
|
def update_prompt(prompt = nil)
|
|
return if prompt.nil?
|
|
substitute_colors(prompt, true)
|
|
end
|
|
|
|
def print_error(msg = '')
|
|
print_line("%bld%red[-]%clr #{msg}")
|
|
end
|
|
|
|
alias_method :print_bad, :print_error
|
|
|
|
def print_good(msg = '')
|
|
print_line("%bld%grn[+]%clr #{msg}")
|
|
end
|
|
|
|
def print_status(msg = '')
|
|
print_line("%bld%blu[*]%clr #{msg}")
|
|
end
|
|
|
|
def print_line(msg = '')
|
|
print(msg + "\n")
|
|
end
|
|
|
|
def print_warning(msg = '')
|
|
print_line("%bld%yel[!]%clr #{msg}")
|
|
end
|
|
|
|
def print(msg = '')
|
|
print_raw(substitute_colors(msg))
|
|
end
|
|
|
|
def reset
|
|
end
|
|
|
|
def puts(*args)
|
|
args.each do |argument|
|
|
line = argument.to_s
|
|
print_raw(line)
|
|
|
|
unless line.ends_with? "\n"
|
|
# yes, this is output, but `IO#puts` uses `rb_default_rs`, which is
|
|
# [`$/`](https://github.com/ruby/ruby/blob/3af8e150aded9d162bfd41426aaaae0279e5a653/io.c#L12168-L12172),
|
|
# which is [`$INPUT_RECORD_SEPARATOR`](https://github.com/ruby/ruby/blob/3af8e150aded9d162bfd41426aaaae0279e5a653/lib/English.rb#L83)
|
|
print_raw($INPUT_RECORD_SEPARATOR)
|
|
end
|
|
end
|
|
|
|
nil
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|