diff options
author | Paul Berry <paul@puppetlabs.com> | 2010-11-09 16:11:52 -0800 |
---|---|---|
committer | Paul Berry <paul@puppetlabs.com> | 2010-11-09 16:13:47 -0800 |
commit | d4df9634b94e498bdd63089f2cd95d49d4baa7f1 (patch) | |
tree | e71446237201960de8d6bb4c743a655507a17720 | |
parent | ee5f78a94e0aa1e12945e90f8c47d8be78ed00f8 (diff) | |
parent | 1fa87a9c1ed9f9a841936615d27c61dc1d2d7fce (diff) | |
download | facter-d4df9634b94e498bdd63089f2cd95d49d4baa7f1.tar.gz facter-d4df9634b94e498bdd63089f2cd95d49d4baa7f1.tar.xz facter-d4df9634b94e498bdd63089f2cd95d49d4baa7f1.zip |
Merge remote branch 'lusis/next' into next
-rwxr-xr-x | bin/facter | 5 | ||||
-rw-r--r-- | lib/facter/application.rb | 13 |
2 files changed, 17 insertions, 1 deletions
@@ -6,7 +6,7 @@ # # = Usage # -# facter [-d|--debug] [-h|--help] [-p|--puppet] [-v|--version] [-y|--yaml] [fact] [fact] [...] +# facter [-d|--debug] [-h|--help] [-p|--puppet] [-v|--version] [-y|--yaml] [-j|--json] [fact] [fact] [...] # # = Description # @@ -21,6 +21,9 @@ # yaml:: # Emit facts in YAML format. # +# json:: +# Emit facts in JSON format. +# # puppet:: # Load the Puppet libraries, thus allowing Facter to load Puppet-specific facts. # 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) } |