diff options
author | Jacob Helwig <jacob@puppetlabs.com> | 2011-04-12 11:15:06 -0700 |
---|---|---|
committer | Jacob Helwig <jacob@puppetlabs.com> | 2011-04-12 11:15:06 -0700 |
commit | a75f0f9bc7ea1e03dc3a19fba8fae61165ab2b05 (patch) | |
tree | 75aa6acaf57de80e1f07b2e59b7c6f978501f709 | |
parent | 6b97242d5ca2cc28cc11e6f253f76fda90255d7f (diff) | |
download | facter-a75f0f9bc7ea1e03dc3a19fba8fae61165ab2b05.tar.gz facter-a75f0f9bc7ea1e03dc3a19fba8fae61165ab2b05.tar.xz facter-a75f0f9bc7ea1e03dc3a19fba8fae61165ab2b05.zip |
(#7039) Pre-load all facts when requesting a single fact
Since multiple facts can be defined in a single file and we have no
way of knowing which "additional" facts are defined in which files, we
pre-load all facts when we're looking for specific one.
Paired-with: Max Martin <max@puppetlabs.com>
-rw-r--r-- | lib/facter/application.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/facter/application.rb b/lib/facter/application.rb index 6b351b1..bd68149 100644 --- a/lib/facter/application.rb +++ b/lib/facter/application.rb @@ -9,19 +9,21 @@ module Facter # Accept fact names to return from the command line names = argv - # Create the facts hash that is printed to standard out - if names.empty? - facts = Facter.to_hash - else + # Create the facts hash that is printed to standard out. + # Pre-load all of the facts, since we can have multiple facts + # per file, and since we can't know ahead of time which file a + # fact will be in, we'll need to load every file. + facts = Facter.to_hash + unless names.empty? facts = {} - names.each { |name| + names.each do |name| begin facts[name] = Facter.value(name) rescue => error $stderr.puts "Could not retrieve #{name}: #{error}" exit 10 end - } + end end # Print the facts as YAML and exit |