X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=tea;h=3783432420eae7f4e41de64b9e1e27c0e254bcd8;hb=9e5f0d9c81c0f0ea5fea6a40cce0ca388177f5cd;hp=1d4c62df85d56023959e368fd694287821b28f4f;hpb=b8b597a4685189c7084950809395993ac7af3980;p=dak.git diff --git a/tea b/tea index 1d4c62df..37834324 100755 --- a/tea +++ b/tea @@ -2,7 +2,7 @@ # Sanity check the database # Copyright (C) 2000, 2001 James Troup -# $Id: tea,v 1.16 2002-02-12 23:14:58 troup Exp $ +# $Id: tea,v 1.17 2002-04-16 14:47:19 troup Exp $ # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -222,6 +222,35 @@ def check_timestamps(): ################################################################################ +def check_missing_tar_gz_in_dsc(): + count = 0; + + q = projectB.query("SELECT l.path, f.filename FROM files f, location l WHERE f.location = l.id AND f.filename ~ '.dsc$'") + for i in q.getresult(): + filename = os.path.abspath(i[0] + i[1]); + try: + # NB: don't enforce .dsc syntax + dsc = utils.parse_changes(filename, 0); + except: + utils.fubar("error parsing .dsc file '%s'." % (filename)); + dsc_files = utils.build_file_list(dsc, 1); + has_tar = 0; + for file in dsc_files.keys(): + m = utils.re_issource.match(file); + if not m: + utils.fubar("%s not recognised as source." % (file)); + type = m.group(3); + if type == "orig.tar.gz" or type == "tar.gz": + has_tar = 1; + if not has_tar: + utils.warn("%s has no .tar.gz in the .dsc file." % (file)); + count = count + 1; + + if count: + utils.warn("Found %s invalid .dsc files." % (count)); + +################################################################################ + def main (): global Cnf, projectB, db_files, waste, excluded; @@ -236,7 +265,8 @@ def main (): #check_override(); #check_dscs(); #check_files(); - check_timestamps(); + #check_timestamps(); + check_missing_tar_gz_in_dsc(); #######################################################################################