Class: Appsignal::CLI
- Inherits:
-
Object
- Object
- Appsignal::CLI
- Defined in:
- lib/appsignal/cli.rb
Constant Summary collapse
- AVAILABLE_COMMANDS =
%w( notify_of_deploy )
Class Method Summary collapse
- .command_option_parser(options) ⇒ Object
- .global_option_parser(options) ⇒ Object
- .logger ⇒ Object
- .notify_of_deploy(options) ⇒ Object
- .run(argv = ARGV) ⇒ Object
- .validate_required_options(required_options, options) ⇒ Object
Class Method Details
.command_option_parser(options) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/appsignal/cli.rb', line 68 def command_option_parser() { 'notify_of_deploy' => OptionParser.new do |o| o. = %Q{Usage: appsignal notify_of_deploy [options] } [:command] = :notify_of_deploy o.on '--revision=<revision>', "The revision you're deploying" do |arg| [:revision] = arg end o.on '--repository=<repository>', "The location of the main code repository" do |arg| [:repository] = arg end o.on '--user=<user>', "The name of the user that's deploying" do |arg| [:user] = arg end o.on '--environment=<rails_env>', "The environment you're deploying to" do |arg| [:environment] = arg end end } end |
.global_option_parser(options) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/appsignal/cli.rb', line 49 def global_option_parser() OptionParser.new do |o| o. = %Q{Usage: appsignal <command> [options]} o.on '-v', '--version', "Print version and exit" do |arg| puts "Appsignal #{Appsignal::VERSION}" exit(0) end o.on '-h', '--help', "Show help and exit" do puts o exit(0) end o.separator '' o.separator "Available commands: #{AVAILABLE_COMMANDS.join(', ')}" end end |
.logger ⇒ Object
45 46 47 |
# File 'lib/appsignal/cli.rb', line 45 def logger Logger.new($stdout) end |
.notify_of_deploy(options) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/appsignal/cli.rb', line 93 def notify_of_deploy() ([:revision, :repository, :user, :environment], ) Appsignal::Marker.new( { :revision => [:revision], :repository => [:repository], :user => [:user] }, ENV['PWD'], [:environment], logger ).transmit end |
.run(argv = ARGV) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/appsignal/cli.rb', line 15 def run(argv=ARGV) unless File.exists?(File.join(ENV['PWD'], 'config/appsignal.yml')) puts 'No config file present at config/appsignal.yml' puts 'Log in to https://appsignal.com to get instructions on how to generate the config file.' exit(1) end = {} global = global_option_parser() commands = command_option_parser() global.order!(argv) command = argv.shift if command then if AVAILABLE_COMMANDS.include?(command) then commands[command].parse!(argv) case [:command] when :notify_of_deploy notify_of_deploy() end else puts "Command '#{command}' does not exist, run appsignal -h to see the help" exit(1) end else # Print help puts global exit(0) end end |
.validate_required_options(required_options, options) ⇒ Object
107 108 109 110 111 112 113 114 115 |
# File 'lib/appsignal/cli.rb', line 107 def (, ) missing = .select do |required_option| [required_option].blank? end if missing.any? puts "Missing options: #{missing.join(', ')}" exit(1) end end |