]> git.decadent.org.uk Git - dak.git/blobdiff - dak/import_new_files.py
generate shasums if necessary due to old changes format
[dak.git] / dak / import_new_files.py
index ff49e6c3567b96e5c378d632eb1f53c9fe19266b..8e1958b5146cdd94e571c6a45fe8df4936d44920 100755 (executable)
@@ -72,6 +72,7 @@ class ImportNewFiles(object):
                 u = Upload()
                 success = u.load_changes(changes_fn)
                 u.pkg.changes_file = changes_bn
+                u.check_hashes()
 
                 if not chg:
                     chg = u.pkg.add_known_changes(newq.path, newq.policy_queue_id, session)
@@ -85,13 +86,27 @@ class ImportNewFiles(object):
 
                 files=[]
                 for chg_fn in u.pkg.files.keys():
+                    f = open(chg_fn)
                     cpf = ChangePendingFile()
                     cpf.filename = chg_fn
                     cpf.size = u.pkg.files[chg_fn]['size']
                     cpf.md5sum = u.pkg.files[chg_fn]['md5sum']
 
+                    if u.pkg.files[chg_fn].has_key('sha1sum'):
+                        cpf.sha1sum = u.pkg.files[chg_fn]['sha1sum']
+                    else:
+                        log.warning("Having to generate sha1sum for %s" % chg_fn)
+                        cpf.sha1sum = apt_pkg.sha1sum(f)
+
+                    if u.pkg.files[chg_fn].has_key('sha256sum'):
+                        cpf.sha256sum = u.pkg.files[chg_fn]['sha256sum']
+                    else:
+                        log.warning("Having to generate sha256sum for %s" % chg_fn)
+                        cpf.sha256sum = apt_pkg.sha256sum(f)
+
                     session.add(cpf)
                     files.append(cpf)
+                    f.close()
 
                 chg.files = files