Class: HerokuHelper::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/heroku-helper/cli.rb

Class Method Summary collapse

Class Method Details

.execute(stdout, arguments = []) ⇒ Object



5
6
7
8
9
10
11
12
13
14
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
# File 'lib/heroku-helper/cli.rb', line 5

def self.execute(stdout, arguments=[])
  options = {
    :env     => 'production',
    :command => 'deploy'
  }
  available_commands = %w(deploy share restart set_vars add_addons)
  mandatory_options = %w(  )

  parser = OptionParser.new do |opts|
    opts.banner = "      Heroku deployment helper\n\n      Usage: \#{File.basename($0)} [options]\n\n      Options are:\n    BANNER\n    opts.separator \"\"\n    opts.on(\"-e\", \"--env=ENV\", String,\n            \"Set environment. Default is production.\") { |arg| options[:env] = arg }\n    opts.on(\"-c\", \"--command=COMMAND\", String,\n            \"Heroku command to run. Default is deploy.\",\n            \"Available commands: \#{available_commands.join(', ')}\") { |arg| options[:command] = arg }\n    opts.on(\"-f\", \"--format\",\n            \"Shows deploy.yml file format.\") { stdout.puts DeploymentConfiguration.configuration_format; exit }\n    opts.on(\"-v\", \"--version\",\n            \"Show the \#{File.basename($0)} version number and quit.\") { stdout.puts \"\#{File.basename($0)} \#{HerokuHelper::VERSION}\"; exit }\n    opts.on(\"-h\", \"--help\", \"Show this help message.\") { stdout.puts opts; exit }\n    opts.parse!(arguments)\n\n    if mandatory_options && mandatory_options.find { |option| options[option.to_sym].nil? }\n      stdout.puts opts; exit\n    end\n  end\n\n  raise \"Command '\#{options[:command]}' not found\" unless available_commands.include?(options[:command])\n  Heroku.new(options[:env]).run(options[:command])\nend\n".gsub(/^          /,'')