]> git.decadent.org.uk Git - dak.git/commitdiff
Fix checking for source files with +'s in them.
authorJames Troup <james@nocrew.org>
Fri, 1 Dec 2000 17:33:29 +0000 (17:33 +0000)
committerJames Troup <james@nocrew.org>
Fri, 1 Dec 2000 17:33:29 +0000 (17:33 +0000)
TODO
katie
utils.py

diff --git a/TODO b/TODO
index 7cf940902f705be6bb31d5a440b790d4cc5a22bb..a486b0f3f850010f8afa83f26429f08784db7b82 100644 (file)
--- a/TODO
+++ b/TODO
@@ -12,6 +12,8 @@ Show Stopper
 Non-Show Stopper
 ----------------
 
+  o fix heimdal at some point on non-US.
+
   o CD building scripts need fixing
 
   o charisma needs to do version compares
diff --git a/katie b/katie
index f8053fc9f655c7220d0abb9ed5cac877a8563e5b..5ecbb00113f4c853bb2191db23f1f0b4d10a6b60 100755 (executable)
--- a/katie
+++ b/katie
@@ -2,7 +2,7 @@
 
 # Installs Debian packaes
 # Copyright (C) 2000  James Troup <james@nocrew.org>
-# $Id: katie,v 1.6 2000-11-30 04:38:34 troup Exp $
+# $Id: katie,v 1.7 2000-12-01 17:33:29 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
@@ -444,7 +444,7 @@ def check_dsc ():
                     actual_md5 = files[dsc_file]["md5sum"]
                     found = "%s in incoming" % (dsc_file)
                     # Check the file does not already exist in the archive
-                    q = projectB.query("SELECT f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (dsc_file));
+                    q = projectB.query("SELECT f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (utils.regex_safe(dsc_file)));
                     if q.getresult() != []:
                         reject_message = reject_message + "Rejected: can not overwrite existing copy of '%s' already in the archive.\n" % (dsc_file)
                 elif dsc_file[-12:] == ".orig.tar.gz":
@@ -460,7 +460,7 @@ def check_dsc ():
                         reprocess = 1;
                         return 1;
                     # Check in the pool
-                    q = projectB.query("SELECT l.path, f.filename, l.type, f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (dsc_file));
+                    q = projectB.query("SELECT l.path, f.filename, l.type, f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (utils.regex_safe(dsc_file)));
                     ql = q.getresult();
                     if len(ql) > 0:
                         old_file = ql[0][0] + ql[0][1];
index ef86b5adc736f80ed8afd30814236e9f5a144f1a..409113ef93da6dad8084e3245d088fe995c6e0d4 100644 (file)
--- a/utils.py
+++ b/utils.py
@@ -1,6 +1,6 @@
 # Utility functions
 # Copyright (C) 2000  James Troup <james@nocrew.org>
-# $Id: utils.py,v 1.5 2000-11-30 04:19:30 troup Exp $
+# $Id: utils.py,v 1.6 2000-12-01 17:33:29 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
@@ -256,3 +256,12 @@ def which_conf_file ():
 
 ######################################################################################
 
+# Escape characters which have meaning to SQL's regex comparison operator ('~')
+# (woefully incomplete)
+
+def regex_safe (s):
+    s = string.replace(s, '+', '\\\\+');
+    return s
+
+######################################################################################
+