Sha256: a0473cb4fef8ca992f22019835fdc25506bd75f4c5506dca362aea48d21e0bc6

Contents?: true

Size: 1.2 KB

Versions: 29

Compression:

Stored size: 1.2 KB

Contents

require 'slog'
require 'thor'


# Thor's hammer! Like Thor with better logging
class Mjolnir < Thor

  # Common options for Thor commands
  COMMON_OPTIONS = {
    log: {
      type: :string,
      aliases: %w[ -L ],
      desc: 'Log to file instead of STDOUT',
      default: ENV['BENDER_LOG'] || nil
    },
    debug: {
      type: :boolean,
      aliases: %w[ -V ],
      desc: 'Enable DEBUG-level logging',
      default: ENV['BENDER_DEBUG'] || false
    },
    trace: {
      type: :boolean,
      aliases: %w[ -VV ],
      desc: 'Enable TRACE-level logging',
      default: ENV['BENDER_TRACE'] || false
    }
  }

  # Decorate Thor commands with the options above
  def self.include_common_options
    COMMON_OPTIONS.each do |name, spec|
      option name, spec
    end
  end


  no_commands do

    # Construct a Logger given the command-line options
    def log
      return @logger if defined? @logger
      level = :info
      level = :debug if options.debug?
      level = :trace if options.trace?
      device = options.log || $stderr
      pretty = device.tty? rescue false
      @logger = Slog.new \
        out: device,
        level: level,
        colorize: pretty,
        prettify: pretty
    end

  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
bender-bot-0.5.6 lib/bender/mjolnir.rb
bender-bot-0.5.5 lib/bender/mjolnir.rb
bender-bot-0.5.4 lib/bender/mjolnir.rb
bender-bot-0.5.3 lib/bender/mjolnir.rb
bender-bot-0.5.2 lib/bender/mjolnir.rb
bender-bot-0.5.1 lib/bender/mjolnir.rb
bender-bot-0.5.0 lib/bender/mjolnir.rb
bender-bot-0.4.8 lib/bender/mjolnir.rb
bender-bot-0.4.7 lib/bender/mjolnir.rb
bender-bot-0.4.6 lib/bender/mjolnir.rb
bender-bot-0.4.5 lib/bender/mjolnir.rb
bender-bot-0.4.4 lib/bender/mjolnir.rb
bender-bot-0.4.3 lib/bender/mjolnir.rb
bender-bot-0.4.2 lib/bender/mjolnir.rb
bender-bot-0.4.1 lib/bender/mjolnir.rb
bender-bot-0.4.0 lib/bender/mjolnir.rb
bender-bot-0.3.0 lib/bender/mjolnir.rb
bender-bot-0.2.4 lib/bender/mjolnir.rb
bender-bot-0.2.3 lib/bender/mjolnir.rb
bender-bot-0.2.2 lib/bender/mjolnir.rb