Method: Inspec::InspecCLI#json

Defined in:
lib/inspec/cli.rb

#json(target) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/inspec/cli.rb', line 34

def json(target)
  o = opts.dup
  diagnose(o)
  o[:ignore_supports] = true
  o[:backend] = Inspec::Backend.create(target: 'mock://')
  o[:check_mode] = true

  profile = Inspec::Profile.for_target(target, o)
  info = profile.info
  # add in inspec version
  info[:generator] = {
    name: 'inspec',
    version: Inspec::VERSION,
  }
  dst = o[:output].to_s
  if dst.empty?
    puts JSON.dump(info)
  else
    if File.exist? dst
      puts "----> updating #{dst}"
    else
      puts "----> creating #{dst}"
    end
    fdst = File.expand_path(dst)
    File.write(fdst, JSON.dump(info))
  end
rescue StandardError => e
  pretty_handle_exception(e)
end