Sha256: 774dd061a96740f429fcd918647e680eb6f832e9d60ba5e0c7066d8b549f74c6
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
require 'capistrano' module Capistrano class LogWithAwesome < Capistrano::Logger #replaces the built in Capistrano logger with awesome def self.init(config) @config = config level = @config.logger.level @config.logger = new @config.logger.level = level end def self.log_with_awesome(message) @buffer ||= [] @buffer << message @config.set :message, message @config.set :full_log, @buffer.join("\n") @config.silently_trigger(:log_message) end # Log and do awesome things # I wish there was a nicer way to do this. Hax on device.puts, maybe? def log(level, message, line_prefix=nil) if level <= self.level indent = "%*s" % [Capistrano::Logger::MAX_LEVEL, "*" * (Capistrano::Logger::MAX_LEVEL - level)] (RUBY_VERSION >= "1.9" ? message.lines : message).each do |line| if line_prefix self.class.log_with_awesome "#{indent} [#{line_prefix}] #{line.strip}" else self.class.log_with_awesome "#{indent} #{line.strip}" end end end super(level, message, line_prefix) end end end module Capistrano class Configuration module Callbacks # Trigger the named event without logging.it def silently_trigger(event, task=nil) pending = Array(callbacks[event]).select { |c| c.applies_to?(task) } if pending.any? pending.each { |callback| callback.call } end end end end end # load last in order to repoen rather than define require 'capistrano/log_with_awesome/version' if Capistrano::Configuration.instance Capistrano::Configuration.instance.load do Capistrano::LogWithAwesome.init(self) end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
HeSYINUvSBZfxqA-capistrano_log-0.0.2 | lib/capistrano/log_with_awesome.rb |
capistrano-log_with_awesome-0.0.2 | lib/capistrano/log_with_awesome.rb |