#!/usr/bin/env ruby
# frozen_string_literal: true

require './microsoft_kb_checker.rb'
require 'optparse'

ARGV << '-h' if ARGV.empty?

params = {}

OptionParser.new do |opts|
  opts.banner = 'Usage: microsoft_cve_audit.rb [OPTIONS]'

  opts.on('-c NAME', '--cve', 'The cve id to check.') { |c| params[:cve_id] = c }
  opts.on('-o NAME', '--os', 'The operating system to check.') { |o| params[:os_name] = o }

  opts.on_tail('-h', '--help', 'Show this message') do
    puts opts
    exit
  end
end.parse!(into: params)

raise OptionParser::MissingArgument if params[:cve_id].nil?
raise OptionParser::MissingArgument if params[:os_name].nil?

puts MicrosoftKbChecker.new(params).query_cve