]> git.decadent.org.uk Git - dak.git/commitdiff
add new function to check for missing .tar.gz in .dsc's
authorJames Troup <james@nocrew.org>
Tue, 16 Apr 2002 14:47:19 +0000 (14:47 +0000)
committerJames Troup <james@nocrew.org>
Tue, 16 Apr 2002 14:47:19 +0000 (14:47 +0000)
tea

diff --git a/tea b/tea
index 1d4c62df85d56023959e368fd694287821b28f4f..3783432420eae7f4e41de64b9e1e27c0e254bcd8 100755 (executable)
--- a/tea
+++ b/tea
@@ -2,7 +2,7 @@
 
 # Sanity check the database
 # Copyright (C) 2000, 2001  James Troup <james@nocrew.org>
-# $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();
 
 #######################################################################################