summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorPaul Berry <paul@puppetlabs.com>2010-11-09 16:11:52 -0800
committerPaul Berry <paul@puppetlabs.com>2010-11-09 16:13:47 -0800
commitd4df9634b94e498bdd63089f2cd95d49d4baa7f1 (patch)
treee71446237201960de8d6bb4c743a655507a17720 /lib
parentee5f78a94e0aa1e12945e90f8c47d8be78ed00f8 (diff)
parent1fa87a9c1ed9f9a841936615d27c61dc1d2d7fce (diff)
downloadfacter-d4df9634b94e498bdd63089f2cd95d49d4baa7f1.tar.gz
facter-d4df9634b94e498bdd63089f2cd95d49d4baa7f1.tar.xz
facter-d4df9634b94e498bdd63089f2cd95d49d4baa7f1.zip
Merge remote branch 'lusis/next' into next
Diffstat (limited to 'lib')
-rw-r--r--lib/facter/application.rb13
1 files changed, 13 insertions, 0 deletions
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) }