Sha256: 7e4ffc44a775905ab400acf49cb8027b34d4a59769d416ccdbfcd6348ddc0696

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 KB

Contents

#!/usr/bin/env ruby
require "airbrake"

def parse_options(array = [])
  opts = Hash[*array]
  opts[:error]   = opts.delete("-e")  || opts.delete("--error")   { RuntimeError }
  opts[:message] = opts.delete("-m")  || opts.delete("--message") { "I've made a huge mistake" }
  opts[:api_key] = opts.delete("-k")  || opts.delete("--api-key")
  opts[:host]    = opts.delete("-h")  || opts.delete("--host")
  opts[:port]    = opts.delete("-p")  || opts.delete("--port")
  opts
end

args = ARGV.dup
command = args.shift.strip rescue nil

case command
  when 'raise'
    options = parse_options(ARGV[1..-1])
    abort "You didn't provide API_KEY so nothing was raised."\
          " Refer to usage for more info (airbrake --help)." unless options[:api_key]
    Airbrake.configure do |c|
      c.api_key = options[:api_key]
      c.host    = options[:host] if options[:host]
      c.port    = options[:port] if options[:port]
    end
    exception_id = Airbrake.notify(:error_class   => options[:error],
                                   :error_message => "#{options[:error]}: #{options[:message]}",
                                   :cgi_data      => ENV)
    abort "Error sending exception to Airbrake server. Try again later." unless exception_id
    puts "Exception sent successfully: http://airbrake.io/locate/#{exception_id}"
  else
    puts <<USAGE
Usage: airbrake [COMMAND] [OPTION]...
Commands:
  raise                    # Raise an exception specified by ERROR and MESSAGE.

Options:
  -e, [--error=ERROR]      # Error class to raise. Default:  RuntimeError
  -m, [--message=MESSAGE]  # Error message. Default: "I've made a huge mistake"
  -k, [--api-key=API_KEY]  # Api key of your Airbrake application.
  -h, [--host=HOST]        # URL of the Airbrake API server. Default: api.airbrake.io
  -p, [--port=PORT]        # Port of the Airbrake API server. Default: 80
  -h, [--help]             # Show this usage
USAGE
  end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
airbrake-3.1.5 bin/airbrake