class Snmp2mkr::Cli

Attributes

argv[R]

Public Class Methods

new(argv) click to toggle source
# File lib/snmp2mkr/cli.rb, line 7
def initialize(argv)
  @argv = argv.dup
end

Public Instance Methods

config() click to toggle source
# File lib/snmp2mkr/cli.rb, line 66
def config
  @config ||= Snmp2mkr::Config.from_yaml(File.read(options[:config]))
end
do_start() click to toggle source
# File lib/snmp2mkr/cli.rb, line 26
def do_start
  parse_argv
  engine = Engine.new(config, log_level: options[:log_level])
  engine.run!
end
options() click to toggle source
# File lib/snmp2mkr/cli.rb, line 58
def options
  @options ||= {
    log_level: 'info',
    config: './config.yml',
    config_chdir: false,
  }
end
optparse() click to toggle source
# 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_argv() click to toggle source
# 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
run() click to toggle source
# 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