This is Al Hoang's patch from the ticket.  It makes the use of
ftools in install.rb contengent on the presence of ftools.

Signed-off-by: Markus Roberts <[email protected]>
---
 install.rb |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/install.rb b/install.rb
index 5a01648..44cf88a 100755
--- a/install.rb
+++ b/install.rb
@@ -35,7 +35,13 @@
 require 'rbconfig'
 require 'find'
 require 'fileutils'
-require 'ftools' # apparently on some system ftools doesn't get loaded
+begin
+  require 'ftools' # apparently on some system ftools doesn't get loaded
+  $haveftools = true
+rescue LoadError
+  puts "ftools not found.  Using FileUtils instead.."
+  $haveftools = false
+end
 require 'optparse'
 require 'ostruct'
 
@@ -92,9 +98,15 @@ def do_libs(libs, strip = 'lib/')
   libs.each do |lf|
     olf = File.join(InstallOptions.site_dir, lf.gsub(/#{strip}/, ''))
     op = File.dirname(olf)
-    File.makedirs(op, true)
-    File.chmod(0755, op)
-    File.install(lf, olf, 0644, true)
+    if $haveftools
+      File.makedirs(op, true)
+      File.chmod(0755, op)
+      File.install(lf, olf, 0644, true)
+    else
+      FileUtils.makedirs(op, {:mode => 0755, :verbose => true})
+      FileUtils.chmod(0755, op)
+      FileUtils.install(lf, olf, {:mode => 0644, :verbose => true})
+    end
   end
 end
 
@@ -102,9 +114,15 @@ def do_man(man, strip = 'man/')
   man.each do |mf|
     omf = File.join(InstallOptions.man_dir, mf.gsub(/#{strip}/, ''))
     om = File.dirname(omf)
-    File.makedirs(om, true)
-    File.chmod(0755, om)
-    File.install(mf, omf, 0644, true)
+    if $haveftools
+      File.makedirs(om, true)
+      File.chmod(0644, om)
+      File.install(mf, omf, 0644, true)
+    else
+      FileUtils.makedirs(om, {:mode => 0755, :verbose => true})
+      FileUtils.chmod(0755, om)
+      FileUtils.install(mf, omf, {:mode => 0644, :verbose => true})
+    end
     gzip = %x{which gzip}
     gzip.chomp!
     %x{#{gzip} -f #{omf}}
-- 
1.6.4


--~--~---------~--~----~------------~-------~--~----~
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