- fs = daklib.utils.build_file_list(dsc, 1, "checksums-%s" % h, h)
- check_hash(".dsc %s" % (h), fs, h, f, dsc_files)
- except daklib.utils.no_files_exc:
- reject("No Checksums-%s: field in .changes file" % (h))
+ fs = utils.build_file_list(dsc, 1, "checksums-%s" % h, h)
+ if o:
+ create_hash(fs, h, f, dsc_files)
+ else:
+ check_hash(".dsc %s" % (h), fs, h, f, dsc_files)
+ except UnknownFormatError, format:
+ reject("%s: unknown format of .dsc" % (format))
+ except NoFilesFieldError:
+ reject("No Checksums-%s: field in .dsc" % (h))
+ except ParseChangesError, line:
+ reject("parse error for Checksums-%s in .dsc, can't grok: %s." % (h, line))
+
+################################################################################
+
+def create_hash (lfiles, key, testfn, basedict = None):
+ for f in lfiles.keys():
+ try:
+ file_handle = utils.open_file(f)
+ except CantOpenError:
+ continue
+
+ # Check hash
+ basedict[f]['%ssum' % key] = testfn(file_handle)
+ file_handle.close()
+