X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fgenerate_releases.py;h=3d42c51cc40df89d976068b2dd46390d3931f331;hb=e3d8cb7bce30c76d6133ab04ce9b01804944d5cb;hp=2e28fb28e39207ea21bcb6bd05dd762ea3157c80;hpb=a4b3758ff560961d45155225a3af66a3c45fe8be;p=dak.git diff --git a/dak/generate_releases.py b/dak/generate_releases.py index 2e28fb28..3d42c51c 100755 --- a/dak/generate_releases.py +++ b/dak/generate_releases.py @@ -4,7 +4,7 @@ @contact: Debian FTPMaster @Copyright: 2001, 2002, 2006 Anthony Towns -@copyright: 2009 Joerg Jaspert +@copyright: 2009, 2011 Joerg Jaspert @license: GNU General Public License version 2 or later """ # This program is free software; you can redistribute it and/or modify @@ -108,7 +108,11 @@ def compressnames (tree,type,file): decompressors = { 'zcat' : gzip.GzipFile, 'bzip2' : bz2.BZ2File } -def print_md5sha_files (tree, files, hashop): +hashfuncs = { 'MD5' : apt_pkg.md5sum, + 'SHA1' : apt_pkg.sha1sum, + 'SHA256' : apt_pkg.sha256sum } + +def print_hash_files (tree, files, hashop): path = Cnf["Dir::Root"] + tree + "/" for name in files: hashvalue = "" @@ -120,12 +124,12 @@ 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) + hashvalue = hashfuncs[ hashop ](contents) hashlen = len(contents) else: try: file_handle = utils.open_file(path + name) - hashvalue = hashop(file_handle) + hashvalue = hashfuncs[ hashop ](file_handle) hashlen = os.stat(path + name).st_size except: raise @@ -141,15 +145,6 @@ def print_md5sha_files (tree, files, hashop): else: out.write(" %s %8d %s\n" % (hashvalue, hashlen, name)) -def print_md5_files (tree, files): - print_md5sha_files (tree, files, apt_pkg.md5sum) - -def print_sha1_files (tree, files): - print_md5sha_files (tree, files, apt_pkg.sha1sum) - -def print_sha256_files (tree, files): - print_md5sha_files (tree, files, apt_pkg.sha256sum) - def write_release_file (relpath, suite, component, origin, label, arch, version="", suite_suffix="", notautomatic="", butautomaticupgrades=""): try: if os.access(relpath, os.F_OK): @@ -314,12 +309,12 @@ def main (): files.append(cfile) add_tiffani(files, Cnf["Dir::Root"] + tree, filepath) else: - disks = "%s/disks-%s" % (sec, arch) - diskspath = Cnf["Dir::Root"]+tree+"/"+disks - if os.path.exists(diskspath): - for dir in os.listdir(diskspath): - if os.path.exists("%s/%s/md5sum.txt" % (diskspath, dir)): - files.append("%s/%s/md5sum.txt" % (disks, dir)) + installer = "%s/installer-%s" % (sec, arch) + installerpath = Cnf["Dir::Root"]+tree+"/"+installer + if os.path.exists(installerpath): + for directory in os.listdir(installerpath): + if os.path.exists("%s/%s/images/MD5SUMS" % (installerpath, directory)): + files.append("%s/%s/images/MD5SUMS" % (installer, directory)) filepath = "%s/binary-%s/Packages" % (sec, arch) for cfile in compressnames("tree::%s" % (tree), "Packages", filepath): @@ -371,12 +366,10 @@ def main (): else: print "ALERT: no tree/bindirectory for %s" % (tree) - out.write("MD5Sum:\n") - print_md5_files(tree, files) - out.write("SHA1:\n") - print_sha1_files(tree, files) - out.write("SHA256:\n") - print_sha256_files(tree, files) + for hashvalue in cnf.SubTree("Generate-Releases").List(): + if suite in [ i.lower() for i in cnf.ValueList("Generate-Releases::%s" % (hashvalue)) ]: + out.write("%s:\n" % (hashvalue)) + print_hash_files(tree, files, hashvalue) out.close() if Cnf.has_key("Dinstall::SigningKeyring"):