X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils.py;h=409113ef93da6dad8084e3245d088fe995c6e0d4;hb=51cf796601da7d2fc65c8f9ad8d0fe0fa580dba2;hp=29175bbdcbe908a36ecdfeab0362fe02ba210b2e;hpb=07241fcd65bb2808804fe2a6e53807997ee9025b;p=dak.git diff --git a/utils.py b/utils.py index 29175bbd..409113ef 100644 --- a/utils.py +++ b/utils.py @@ -1,6 +1,6 @@ # Utility functions # Copyright (C) 2000 James Troup -# $Id: utils.py,v 1.1.1.1 2000-11-24 00:20:09 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 @@ -112,14 +112,22 @@ def build_file_list(changes, dsc): if section == "": section = "-" if priority == "": priority = "-" + # What a mess. FIXME if string.find(section, '/') != -1: component = string.split(section, '/')[0] - if string.lower(component) == "non-us": - component = string.split(section, '/')[0]+ '/' + string.split(section, '/')[1] - + if string.lower(component) == "non-us" and string.count(section, '/') > 1: + s = string.split(section, '/')[1] + if s == "main" or s == "non-free" or s == "contrib": # Avoid e.g. non-US/libs + component = string.split(section, '/')[0]+ '/' + string.split(section, '/')[1] + + if string.lower(section) == "non-us": + component = "non-US/main"; + if component == "": - component = "main" - + component = "main"; + elif string.lower(component) == "non-us": + component = "non-US/main"; + files[name] = { "md5sum" : md5, "size" : size, "section": section, @@ -154,7 +162,7 @@ def fix_maintainer (maintainer): # sendmail wrapper, takes _either_ a message string or a file as arguments def send_mail (message, filename): #### FIXME, how do I get this out of Cnf in katie? - sendmail_command = "/usr/sbin/sendmail -oi -t"; + sendmail_command = "/usr/sbin/sendmail -odq -oi -t"; # Sanity check arguments if message != "" and filename != "": @@ -198,9 +206,26 @@ def move (src, dest): os.umask(umask); #print "Moving %s to %s..." % (src, dest); shutil.copy2(src, dest); + if os.path.exists(dest) and stat.S_ISDIR(os.stat(dest)[stat.ST_MODE]): + dest = dest + '/' + os.path.basename(src); os.chmod(dest, 0664); os.unlink(src); +def copy (src, dest): + if os.path.exists(dest) and stat.S_ISDIR(os.stat(dest)[stat.ST_MODE]): + dest_dir = dest; + else: + dest_dir = os.path.dirname(dest); + if not os.path.exists(dest_dir): + umask = os.umask(00000); + os.makedirs(dest_dir, 02775); + os.umask(umask); + #print "Copying %s to %s..." % (src, dest); + shutil.copy2(src, dest); + if os.path.exists(dest) and stat.S_ISDIR(os.stat(dest)[stat.ST_MODE]): + dest = dest + '/' + os.path.basename(src); + os.chmod(dest, 0664); + ###################################################################################### # FIXME: this is inherently nasty. Can't put this mapping in a conf @@ -211,7 +236,7 @@ def where_am_i (): res = socket.gethostbyaddr(socket.gethostname()); if res[0] == 'pandora.debian.org': return 'non-US'; - elif res[1] == 'auric.debian.org': + elif res[0] == 'auric.debian.org': return 'ftp-master'; else: raise unknown_hostname_exc, res; @@ -231,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 + +###################################################################################### +