[Pkg-puppet-devel] [SCM] Packaging of Facter for debian branch, experimental, updated. debian/1.5.8-2-160-gb26a2a8
Jacob Helwig
jacob at puppetlabs.com
Tue May 10 08:40:09 UTC 2011
The following commit has been merged in the experimental branch:
commit a75f0f9bc7ea1e03dc3a19fba8fae61165ab2b05
Author: Jacob Helwig <jacob at puppetlabs.com>
Date: Tue Apr 12 11:15:06 2011 -0700
(#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 at puppetlabs.com>
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
--
Packaging of Facter for debian
More information about the Pkg-puppet-devel
mailing list