Class: OpzWorks::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/opzworks/cli.rb

Class Method Summary collapse

Class Method Details

.startObject



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
42
43
44
45
46
47
48
# File 'lib/opzworks/cli.rb', line 8

def self.start
  Trollop.options do
    version "opzworks #{OpzWorks::VERSION} (c) #{OpzWorks::AUTHORS.join(', ')}"
    banner <<-EOS.unindent
      usage: opzworks [COMMAND] [OPTIONS...]

      #{OpzWorks::SUMMARY}

      Commands
        ssh  #{OpzWorks::Commands::SSH.banner}
        cmd  #{OpzWorks::Commands::CMD.banner}
        json #{OpzWorks::Commands::STACKJSON.banner}
        berks #{OpzWorks::Commands::BERKS.banner}
        elastic #{OpzWorks::Commands::ELASTIC.banner}

      For help with specific commands, run:
        opzworks COMMAND -h/--help

      Options:
    EOS
    stop_on COMMANDS
  end

  command = ARGV.shift
  case command
  when 'ssh'
    OpzWorks::Commands::SSH.run
  when 'json'
    OpzWorks::Commands::STACKJSON.run
  when 'berks'
    OpzWorks::Commands::BERKS.run
  when 'elastic'
    OpzWorks::Commands::ELASTIC.run
  when 'cmd'
    OpzWorks::Commands::CMD.run
  when nil
    Trollop.die 'no command specified'
  else
    Trollop.die "unknown command: #{command}"
  end
end