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)