Class: Snmp2mkr::Cli

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Cli

Returns a new instance of Cli.



7
8
9
# File 'lib/snmp2mkr/cli.rb', line 7

def initialize(argv)
  @argv = argv.dup
end

Instance Attribute Details

#argvObject (readonly)

Returns the value of attribute argv.



11
12
13
# File 'lib/snmp2mkr/cli.rb', line 11

def argv
  @argv
end

Instance Method Details

#configObject



66
67
68
# File 'lib/snmp2mkr/cli.rb', line 66

def config
  @config ||= Snmp2mkr::Config.from_yaml(File.read(options[:config]))
end

#do_startObject



26
27
28
29
30
# File 'lib/snmp2mkr/cli.rb', line 26

def do_start
  parse_argv
  engine = Engine.new(config, log_level: options[:log_level])
  engine.run!
end

#optionsObject



58
59
60
61
62
63
64
# File 'lib/snmp2mkr/cli.rb', line 58

def options
  @options ||= {
    log_level: 'info',
    config: './config.yml',
    config_chdir: false,
  }
end

#optparseObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/snmp2mkr/cli.rb', line 38

def optparse
  @optparse ||= OptionParser.new do |opt|
    opt.on('-c YAML', '--config YAML', 'specify configuration file (default ./config.yml)') do |path|
      options[:config] = path
    end

    opt.on('-C', '--chdir-config-dir', 'chdir working directory to same as configuration file (default false)') do |path|
      options[:config_chdir] = true
    end

    opt.on('-c YAML', '--config YAML', 'specify configuration file (default ./config.yml)') do |path|
      options[:config] = path
    end

    opt.on('-l LOGLEVEL', '--log-level LOGLEVEL', 'log level (default "info")') do |l|
      options[:log_level] = l
    end
  end
end

#parse_argvObject



32
33
34
35
36
# File 'lib/snmp2mkr/cli.rb', line 32

def parse_argv
  optparse.parse(argv).tap do
    Dir.chdir(File.dirname(options[:config])) if options[:config_chdir]
  end
end

#runObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/snmp2mkr/cli.rb', line 13

def run
  case @argv.shift
  when 'start'
    do_start
    return 0
  when 'test'
    raise NotImplementedError
  when 'import'
    raise NotImplementedError
  else
  end
end