class NewRelic::Cli::Command
Attributes
leftover[RW]
Public Class Methods
inherited(subclass)
click to toggle source
# File lib/new_relic/cli/command.rb, line 50 def self.inherited(subclass) @commands << subclass end
new(command_line_args)
click to toggle source
# File lib/new_relic/cli/command.rb, line 32 def initialize(command_line_args) if Hash === command_line_args # command line args is an options hash command_line_args.each do |key, value| instance_variable_set("@#{key}", value.to_s) if value end else # parse command line args. Throw an exception on a bad arg. @options = options do |opts| opts.on('-h', 'Show this help') { raise CommandFailure, opts.to_s } end @leftover = @options.parse(command_line_args) end rescue OptionParser::ParseError => e raise CommandFailure.new(e.message, @options) end
run()
click to toggle source
# File lib/new_relic/cli/command.rb, line 57 def self.run @command_names = @commands.map { |c| c.command } extra = [] options = ARGV.options do |opts| script_name = File.basename($0) # TODO: MAJOR VERSION - remove newrelic, deprecated since version x.xx if /newrelic$/.match?(script_name) $stdout.puts "warning: the 'newrelic' script has been renamed 'newrelic_rpm'" script_name = 'newrelic_rpm' end opts.banner = "Usage: #{script_name} [ #{@command_names.join(' | ')} ] [options]" opts.separator("use '#{script_name} <command> -h' to see detailed command options") opts end extra = options.order! command = extra.shift # just make it a little easier on them command = 'deployments' if command.include?('deploy') if command.nil? STDERR.puts options elsif !@command_names.include?(command) STDERR.puts "Unrecognized command: #{command}" STDERR.puts options else command_class = @commands.find { |c| c.command == command } command_class.new(extra).run end rescue OptionParser::InvalidOption => e raise NewRelic::Cli::Command::CommandFailure, e.message end
Public Instance Methods
err(message)
click to toggle source
# File lib/new_relic/cli/command.rb, line 28 def err(message) STDERR.puts message end
info(message)
click to toggle source
# File lib/new_relic/cli/command.rb, line 24 def info(message) STDOUT.puts message end