diff options
author | Nick Lewis <nick@puppetlabs.com> | 2011-05-31 13:25:43 -0700 |
---|---|---|
committer | Nick Lewis <nick@puppetlabs.com> | 2011-05-31 15:35:40 -0700 |
commit | 926e912cd4eeedacc5833457ed34e57bd06f5b1a (patch) | |
tree | 83da6ed5d4b132b9fce68ff30ed2cb9665718d96 | |
parent | 2255abee7bdb9b6478ca228546e3d275dbac0ec3 (diff) | |
download | facter-926e912cd4eeedacc5833457ed34e57bd06f5b1a.tar.gz facter-926e912cd4eeedacc5833457ed34e57bd06f5b1a.tar.xz facter-926e912cd4eeedacc5833457ed34e57bd06f5b1a.zip |
(#7670) Stop preloading all facts in the application
If a requested fact isn't found in the same location as its name, we want to
load all of the facts to find it. However, to simplify that, we were previously
just preloading all the facts every time. Because requesting a fact now
implicitly loads all facts if necessary, we can rely on that, providing results
much more quickly in the case where facts do match their filenames.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
-rw-r--r-- | lib/facter/application.rb | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/facter/application.rb b/lib/facter/application.rb index bd68149..9b6da1d 100644 --- a/lib/facter/application.rb +++ b/lib/facter/application.rb @@ -10,10 +10,6 @@ module Facter names = argv # 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 do |name| @@ -26,6 +22,9 @@ module Facter end end + # Print everything if they didn't ask for specific facts. + facts ||= Facter.to_hash + # Print the facts as YAML and exit if options[:yaml] require 'yaml' |