misc_rbtools/kenna_kdi_importer/kenna_kdi_importer.rb

42 lines
1.1 KiB
Ruby
Raw Normal View History

#!/usr/bin/env ruby
2019-08-08 01:10:50 -05:00
require 'optparse'
require './asset_generator'
2019-08-09 02:05:32 -05:00
require './cve_report'
require './kdi_format'
2019-08-08 01:10:50 -05:00
ARGV << '-h' if ARGV.empty?
params = {}
OptionParser.new do |opts|
opts.banner = "Usage: kenna_kdi_importer.rb [OPTIONS]"
opts.on('-a NUM', '--assets', Integer, "Number of assets to create") { |a| params[:assets] = a }
2019-08-09 02:05:32 -05:00
opts.on('-v NUM', '--vulns', Integer, "Number of vulns that may be created per asset") {|v| params[:vulns] = v }
2020-10-27 02:30:09 -05:00
# opts.on('-g BOOLEAN', '--generate', Boolean, "Generate a new json of cve ids in an array") {|g| params[:generate] = g }
2019-08-08 01:10:50 -05:00
opts.on_tail("-h", "--help", "Show this message") do
puts opts
exit
end
end.parse!(into: params)
raise OptionParser::MissingArgument if params[:assets].nil?
2019-08-09 02:05:32 -05:00
raise OptionParser::MissingArgument if params[:vulns].nil?
2019-08-08 01:10:50 -05:00
num_of_assets = params[:assets]
2019-08-09 02:05:32 -05:00
num_of_vulns = params[:vulns]
2019-08-08 01:10:50 -05:00
2019-08-09 02:05:32 -05:00
asset_generator = KennaKdi::AssetGenerator.new('./data/cve_ids.json')
2019-08-08 01:10:50 -05:00
while true do
2019-08-09 02:05:32 -05:00
hash = asset_generator.create_assets(num_of_assets, num_of_vulns)
2019-08-08 01:10:50 -05:00
if hash
break
end
end
json = hash.to_json
puts JSON.pretty_generate(JSON.parse(json))