Module: Netgrep::Options

Defined in:
lib/netgrep/options.rb

Class Method Summary collapse

Class Method Details

.parse(argv) ⇒ Object



4
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
# File 'lib/netgrep/options.rb', line 4

def self.parse(argv)
  options = OpenStruct.new
  options.netblocks_file = nil
  options.log_file = nil
  options.num_workers = 1
  options.ignore_ipv6 = false

  parser = OptionParser.new do |opts|
    opts.on("-f NETBLOCKS_FILE", String, "File containing one IP or CIDR per line") do |file_name|
      options.netblocks_file = File.absolute_path(file_name)
    end

    opts.on("--ignore-ipv6", "Don't try to match IPV6 Addresses") do
      options.ignore_ipv6 = true
    end

    opts.on("-w NUM_WORKERS", Integer, "Number of worker processes to use") do |n|
      options.num_workers = Integer(n)
      raise(OptionParser::InvalidArgument) if options.num_workers < 1
    end
  end

  parser.parse!(argv)
  options.log_file = argv[0]
  options.log_file || raise(OptionParser::InvalidOption.new)

  options
end