lib/sandi_meter/cli.rb in sandi_meter-1.1.5 vs lib/sandi_meter/cli.rb in sandi_meter-1.1.6

- old
+ new

@@ -1,14 +1,16 @@ # encoding: utf-8 require 'mixlib/cli' require 'sandi_meter/file_scanner' require 'sandi_meter/formatter' +require 'sandi_meter/json_formatter' require 'sandi_meter/rules_checker' require 'sandi_meter/logger' require 'sandi_meter/version' require 'sandi_meter/html_generator' require 'yaml' +require 'json' module SandiMeter class CommandParser include Mixlib::CLI @@ -54,10 +56,15 @@ option :rules, short: "-r", long: "--rules", description: "Show rules", boolean: 0 + + option :json, + long: "--json", + description: "Output as JSON", + boolean: false end class CLI class << self def execute @@ -83,10 +90,15 @@ end scanner = SandiMeter::FileScanner.new(cli.config[:log]) data = scanner.scan(cli.config[:path], cli.config[:details] || cli.config[:graph]) - formatter = SandiMeter::Formatter.new + if cli.config[:json] + formatter = SandiMeter::JsonFormatter.new + else + formatter = SandiMeter::Formatter.new + end + formatter.print_data(data) if cli.config[:graph] if File.directory?(cli.config[:path]) logger = SandiMeter::Logger.new(data)