diff options
Diffstat (limited to 'lib/facter')
-rw-r--r-- | lib/facter/application.rb | 7 | ||||
-rw-r--r-- | lib/facter/util/collection.rb | 6 |
2 files changed, 8 insertions, 5 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' diff --git a/lib/facter/util/collection.rb b/lib/facter/util/collection.rb index 3f8e0f8..b3d3a45 100644 --- a/lib/facter/util/collection.rb +++ b/lib/facter/util/collection.rb @@ -66,9 +66,13 @@ class Facter::Util::Collection def fact(name) name = canonize(name) + # Try to load the fact if necessary loader.load(name) unless @facts[name] - return @facts[name] + # Try HARDER + loader.load_all unless @facts[name] + + @facts[name] end # Flush all cached values. |