diff options
| author | Luke Kanies <luke@madstop.com> | 2008-02-14 20:13:44 -0600 |
|---|---|---|
| committer | Luke Kanies <luke@madstop.com> | 2008-02-14 20:13:44 -0600 |
| commit | 6013b2500d9e799f8aba9f614de15d4eb477860a (patch) | |
| tree | 6c134299d0e491cc46208a5122b8b8183f5bbd89 /lib | |
| parent | aebd303e267a4b830592ffe3551bd80647802a20 (diff) | |
| download | puppet-6013b2500d9e799f8aba9f614de15d4eb477860a.tar.gz puppet-6013b2500d9e799f8aba9f614de15d4eb477860a.tar.xz puppet-6013b2500d9e799f8aba9f614de15d4eb477860a.zip | |
Refactoring the incremental checksum generation
slightly based on the code in type/file/checksum.rb.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/puppet/util/checksums.rb | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/puppet/util/checksums.rb b/lib/puppet/util/checksums.rb index 0d45c6d5a..598b3adfa 100644 --- a/lib/puppet/util/checksums.rb +++ b/lib/puppet/util/checksums.rb @@ -9,20 +9,20 @@ module Puppet::Util::Checksums # Calculate a checksum of the first 500 chars of the content using Digest::MD5. def md5lite(content) - md5(content[0..499]) + md5(content[0..511]) end # Calculate a checksum of a file's content using Digest::MD5. - def md5_file(filename) + def md5_file(filename, lite = false) require 'digest/md5' digest = Digest::MD5.new() - return checksum_file(digest, filename) + return checksum_file(digest, filename, lite) end # Calculate a checksum of the first 500 chars of a file's content using Digest::MD5. def md5lite_file(filename) - File.open(filename, "r") { |f| return md5(f.read(500)) } + md5_file(filename, true) end # Return the :mtime timestamp of a file. @@ -38,20 +38,20 @@ module Puppet::Util::Checksums # Calculate a checksum of the first 500 chars of the content using Digest::SHA1. def sha1lite(content) - sha1(content[0..499]) + sha1(content[0..511]) end # Calculate a checksum of a file's content using Digest::SHA1. - def sha1_file(filename) + def sha1_file(filename, lite = false) require 'digest/sha1' digest = Digest::SHA1.new() - return checksum_file(digest, filename) + return checksum_file(digest, filename, lite) end # Calculate a checksum of the first 500 chars of a file's content using Digest::SHA1. def sha1lite_file(filename) - File.open(filename, "r") { |f| return sha1(f.read(500)) } + sha1_file(filename, true) end # Return the :ctime of a file. @@ -62,10 +62,11 @@ module Puppet::Util::Checksums private # Perform an incremental checksum on a file. - def checksum_file(digest, filename) + def checksum_file(digest, filename, lite = false) File.open(filename, 'r') do |file| - file.each_line do |line| - digest << line + while content = file.read(512) + digest << content + break if lite end end |
