summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/type/pfile.rb8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/puppet/type/pfile.rb b/lib/puppet/type/pfile.rb
index 44d888ce2..ef55eef0e 100644
--- a/lib/puppet/type/pfile.rb
+++ b/lib/puppet/type/pfile.rb
@@ -274,12 +274,10 @@ module Puppet
# FIXME Shouldn't this just use a Puppet object with
# 'source' specified?
bfile = file + backup
- FileUtils.cp(file, bfile)
- unless File.stat(file).mode == File.stat(bfile).mode
- mode = File.stat(file).mode & 007777
- File.chmod(mode, bfile)
- end
+ # Ruby 1.8.1 requires the 'preserve' addition, but
+ # later versions do not appear to require it.
+ FileUtils.cp(file, bfile, :preserve => true)
return true
rescue => detail
# since they said they want a backup, let's error out