#!/usr/bin/env ruby require 'optparse' require './asset_generator' require './cve_report' require './kdi_format' 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 } opts.on('-v NUM', '--vulns', Integer, "Number of vulns that may be created per asset") {|v| params[:vulns] = v } # opts.on('-g BOOLEAN', '--generate', Boolean, "Generate a new json of cve ids in an array") {|g| params[:generate] = g } opts.on_tail("-h", "--help", "Show this message") do puts opts exit end end.parse!(into: params) raise OptionParser::MissingArgument if params[:assets].nil? raise OptionParser::MissingArgument if params[:vulns].nil? num_of_assets = params[:assets] num_of_vulns = params[:vulns] asset_generator = KennaKdi::AssetGenerator.new('./data/cve_ids.json') while true do hash = asset_generator.create_assets(num_of_assets, num_of_vulns) if hash break end end json = hash.to_json puts JSON.pretty_generate(JSON.parse(json))