From 1fa87a9c1ed9f9a841936615d27c61dc1d2d7fce Mon Sep 17 00:00:00 2001 From: "John E. Vincent" Date: Thu, 4 Nov 2010 00:07:06 -0400 Subject: JSON support. Works in 1.9.1. Warnings in 1.9.2. LoadError on 1.8.7 for some reason --- lib/facter/application.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'lib/facter') diff --git a/lib/facter/application.rb b/lib/facter/application.rb index 9de9249..9d6bc34 100644 --- a/lib/facter/application.rb +++ b/lib/facter/application.rb @@ -31,6 +31,18 @@ module Facter exit(0) end + # Print the facts as JSON and exit + if options[:json] + begin + require 'json' + puts JSON.dump(facts) + exit(0) + rescue LoadError + $stderr.puts "You do not have JSON support in your version of Ruby. JSON output disabled" + exit(1) + end + end + # Print the value of a single fact, otherwise print a list sorted by fact # name and separated by "=>" if facts.length == 1 @@ -58,6 +70,7 @@ module Facter options = {} OptionParser.new do |opts| opts.on("-y", "--yaml") { |v| options[:yaml] = v } + opts.on("-j", "--json") { |v| options[:json] = v } opts.on( "--trace") { |v| options[:trace] = v } opts.on("-d", "--debug") { |v| Facter.debugging(1) } opts.on("-t", "--timing") { |v| Facter.timing(1) } -- cgit