The problem was that Facter wasn't telling Puppet to read
your puppet.conf, so if you'd set vardir or libdir
in it then you didn't get the appropriate settings and thus
not know where to find the facter plugins.

This is a bit of a ham-handed approach, but it always works.

Signed-off-by: Luke Kanies <[email protected]>
---
 bin/facter |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/bin/facter b/bin/facter
index 6ee5b48..4ffd50a 100755
--- a/bin/facter
+++ b/bin/facter
@@ -58,6 +58,19 @@ rescue Exception
     $haveusage = false
 end
 
+def load_puppet
+    require 'puppet'
+    Puppet.parse_config
+
+    # If you've set 'vardir' but not 'libdir' in your
+    # puppet.conf, then the hook to add libdir to $:
+    # won't get triggered.  This makes sure that it's setup
+    # correctly.
+    unless $LOAD_PATH.include?(Puppet[:libdir])
+        $LOAD_PATH << Puppet[:libdir]
+    end
+end
+
 $debug = 0
 
 config = nil
@@ -83,7 +96,7 @@ begin
             exit
         when "--puppet"
             begin
-                require 'puppet'
+                load_puppet()
             rescue LoadError => detail
                 $stderr.puts "Could not load Puppet: %s" % detail
             end
-- 
1.6.1


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to