Sha256: 778211cb4cf70497bc5b07441a149a698f388836b134b3c1266dfbecc45570b7

Contents?: true

Size: 1.8 KB

Versions: 4

Compression:

Stored size: 1.8 KB

Contents

#!/usr/bin/env ruby

require 'optparse'
require 'ostruct'
require 'recog'
require 'recog/matcher_factory'

options = OpenStruct.new(color: false, detail: false, json_format: false, fail_fast: false, multi_match: false)

option_parser = OptionParser.new do |opts|
  opts.banner = "Usage: #{$0} [options] XML_FINGERPRINT_FILE [BANNERS_FILE]"
  opts.separator "Identifies the matches and misses between the fingerprints and the banners file or STDIN"
  opts.separator ""
  opts.separator "Options"

  opts.on("-f", "--format FORMATTER", [:summary, :detail, :json],
          "Choose a formatter.",
          "  [s]ummary (default - failure/match msgs)",
          "  [d]etail  (msgs with total counts)",
          "  [j]son    (JSON failure/match msgs)") do |format|
    if format == :summary
      options.detail = false
      options.json_format = false
    elsif format == :detail
      options.detail = true
    elsif format == :json
      options.json_format = true
    end
  end

  opts.on("--fail-fast [NUM]",
          "Stop after number of failures (default: 10).") do |num|
    options.fail_fast = true
    options.stop_after = (num.to_i == 0) ? 10 : num.to_i
  end

  opts.on("-c", "--color", "Enable color in the output.") do
    options.color = true
  end

  opts.on("--[no-]multi-match", "Enable or disable multiple matches (defaults to disabled)") do |o|
    options.multi_match = o
  end

  opts.on("-h", "--help", "Show this message.") do
    puts opts
    exit
  end
end


begin
  option_parser.parse!(ARGV)
rescue OptionParser::ParseError => e
  puts e.message
  puts option_parser
  exit(1)
end

if ARGV.count < 1 || ARGV.count > 2
  puts option_parser
  exit(1)
end

ndb = Recog::DB.new(ARGV.shift)
options.fingerprints = ndb.fingerprints
matcher = Recog::MatcherFactory.build(options)
matcher.match_banners(ARGV.shift || "-")

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
recog-3.1.1 recog/bin/recog_match
recog-3.1.0 recog/bin/recog_match
recog-3.0.3 recog/bin/recog_match
recog-3.0.2 recog/bin/recog_match