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

require 'optparse'
require 'json'
require './rhel_rpm_to_cve'

data_file = './rpm-to-cve.xml'

options = {}

parser = OptionParser.new do |parser|
  parser.banner = 'Usage: rpm_pkg_audit.rb [options]'
  parser.on('-p', '--pkg PKGNAME', 'The pkg name you want to audit.') do |pkg|
    options[:pkg] = pkg
  end
  parser.on('-l', '--list', 'List packages in the XML datafile.') do |list|
    options[:list] = list
  end
end

parser.parse!

pkg_name = options[:pkg]
rpm_auditer = RhelRpmToCve.new(data_file)

if pkg_name
  json = rpm_auditer.cves_per_pkg_name(pkg_name).to_json
  puts JSON.pretty_generate(JSON.parse(json))
else options.key?(:list)
  puts rpm_auditer.list_pkg_names.sort
end