[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] generate_releases



depending on what kind of file we have we generate the checksums in
different ways. For the uncompressed sum we continue reading in all the
content and hand that as a variable to apt_pkg.*sum. Turns out this does
not work for the already compressed files, there we now go and just hand
the opened file_handle to apt_pkg.*sum.
---
 dak/generate_releases.py |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dak/generate_releases.py b/dak/generate_releases.py
index 64d1d20..8d0a3d8 100755
--- a/dak/generate_releases.py
+++ b/dak/generate_releases.py
@@ -84,6 +84,8 @@ decompressors = { 'zcat' : gzip.GzipFile,
 def print_md5sha_files (tree, files, hashop):
     path = Cnf["Dir::Root"] + tree + "/"
     for name in files:
+        hashvalue = ""
+        hashlen = 0
         try:
             if name[0] == "<":
                 j = name.index("/")
@@ -91,10 +93,13 @@ def print_md5sha_files (tree, files, hashop):
                 (cat, ext, name) = (name[1:j], name[j+1:k], name[k+1:])
                 file_handle = decompressors[ cat ]( "%s%s%s" % (path, name, ext) )
                 contents = file_handle.read()
+                hashvalue = hashop(contents)
+                hashlen = len(contents)
             else:
                 try:
                     file_handle = utils.open_file(path + name)
-                    contents = file_handle.read()
+                    hashvalue = hashop(file_handle)
+                    hashlen = os.stat(path + name).st_size
                 except:
                     raise
                 else:
@@ -104,8 +109,7 @@ def print_md5sha_files (tree, files, hashop):
         except CantOpenError:
             print "ALERT: Couldn't open " + path + name
         else:
-            hash = hashop(contents)
-            out.write(" %s %8d %s\n" % (hash, len(contents), name))
+            out.write(" %s %8d %s\n" % (hashvalue, hashlen, name))
 
 def print_md5_files (tree, files):
     print_md5sha_files (tree, files, apt_pkg.md5sum)
-- 
1.5.6.5


Reply to: