diff options
Diffstat (limited to 'lib/bundler/ui.rb')
| -rw-r--r-- | lib/bundler/ui.rb | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/bundler/ui.rb b/lib/bundler/ui.rb index f1d3fe8f5f..3f5b97383f 100644 --- a/lib/bundler/ui.rb +++ b/lib/bundler/ui.rb @@ -8,6 +8,9 @@ module Bundler def debug(message, newline = nil) end + def trace(message, newline = nil) + end + def error(message, newline = nil) end @@ -25,10 +28,14 @@ module Bundler attr_reader :quiet attr_writer :shell - def initialize(shell) - @shell = shell + def initialize(options = {}) + if options["no-color"] || !STDOUT.tty? + Thor::Base.shell = Thor::Shell::Basic + end + @shell = Thor::Base.shell.new @quiet = false @debug = ENV['DEBUG'] + @trace = ENV['TRACE'] end def info(msg, newline = nil) @@ -51,6 +58,10 @@ module Bundler @quiet = value end + def quiet? + @quiet + end + def debug? # needs to be false instead of nil to be newline param to other methods !!@debug && !@quiet @@ -64,6 +75,15 @@ module Bundler tell_me(msg, nil, newline) if debug? end + def trace(e, newline = nil) + msg = ["#{e.class}: #{e.message}", *e.backtrace].join("\n") + if debug? + tell_me(msg, nil, newline) + elsif @trace + STDERR.puts "#{msg}#{newline}" + end + end + private # valimism def tell_me(msg, color = nil, newline = nil) |
