Class: Rundock::CLI

Inherits:
Thor show all
Defined in:
lib/rundock/cli.rb

Constant Summary collapse

DEFAULT_SCENARIO_FILE_PATH =
'./scenario.yml'
DEFAULT_SSH_OPTIONS_DEFAULT_FILE_PATH =
'./default_ssh.yml'
DEFAULT_HOSTGROUP_FILE_PATH =
'./targetgroup.yml'

Instance Method Summary collapse

Constructor Details

#initialize(args, opts, config) ⇒ CLI

Returns a new instance of CLI.



17
18
19
20
21
22
23
24
25
26
# File 'lib/rundock/cli.rb', line 17

def initialize(args, opts, config)
  super(args, opts, config)

  Rundock::Logger.level = ::Logger.const_get(options[:log_level].upcase)
  Rundock::Logger.formatter.colored = options[:color]
  Rundock::Logger.formatter.show_header = options[:header]
  Rundock::Logger.formatter.short_header = options[:short_header]
  Rundock::Logger.formatter.date_header = options[:date_header]
  Rundock::Logger.formatter.suppress_logging = options[:suppress_logging]
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(command, *args) ⇒ Object



80
81
82
# File 'lib/rundock/cli.rb', line 80

def method_missing(command, *args)
  help
end

Instance Method Details

#configureObject



74
75
76
77
78
# File 'lib/rundock/cli.rb', line 74

def configure
  opts = {}

  Configure.start(opts.merge(options.deep_symbolize_keys))
end

#do(*scenario_file_path) ⇒ Object



42
43
44
45
46
47
# File 'lib/rundock/cli.rb', line 42

def do(*scenario_file_path)
  scenario_file_path = [DEFAULT_SCENARIO_FILE_PATH] if scenario_file_path.empty?
  opts = { :scenario => scenario_file_path[0] }

  Runner.run(opts.merge(options.deep_symbolize_keys))
end

#sshObject



65
66
67
68
69
# File 'lib/rundock/cli.rb', line 65

def ssh
  opts = {}

  Runner.run(opts.merge(options.deep_symbolize_keys))
end

#versionObject



29
30
31
# File 'lib/rundock/cli.rb', line 29

def version
  puts Rundock::VERSION.to_s
end