summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Lewis <nick@puppetlabs.com>2011-05-31 13:25:43 -0700
committerNick Lewis <nick@puppetlabs.com>2011-05-31 15:35:40 -0700
commit926e912cd4eeedacc5833457ed34e57bd06f5b1a (patch)
tree83da6ed5d4b132b9fce68ff30ed2cb9665718d96
parent2255abee7bdb9b6478ca228546e3d275dbac0ec3 (diff)
downloadfacter-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.rb7
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'