diff options
Diffstat (limited to 'lib/puppet')
| -rwxr-xr-x | lib/puppet/type/file/content.rb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/puppet/type/file/content.rb b/lib/puppet/type/file/content.rb index 7d541645c..d7bb022a3 100755 --- a/lib/puppet/type/file/content.rb +++ b/lib/puppet/type/file/content.rb @@ -1,5 +1,6 @@ require 'net/http' require 'uri' +require 'tempfile' require 'puppet/util/checksums' require 'puppet/network/http/api/v1' @@ -101,7 +102,9 @@ module Puppet result = super if ! result and Puppet[:show_diff] - string_file_diff(@resource[:path], actual_content) + write_temporarily do |path| + print diff(@resource[:path], path) + end end return result end @@ -137,6 +140,19 @@ module Puppet return return_event end + def write_temporarily + tempfile = Tempfile.new("puppet-file") + tempfile.open + + write(tempfile) + + tempfile.close + + yield tempfile.path + + tempfile.delete + end + def write(file) resource.parameter(:checksum).sum_stream { |sum| each_chunk_from(actual_content || resource.parameter(:source)) { |chunk| |
