]> git.decadent.org.uk Git - dak.git/blobdiff - utils.py
security.debian.org
[dak.git] / utils.py
index 0422e08d3de7abc1c1c102eda754ad5684463a5e..33b7780516a382120dd6dbb0ca04e077773ca9a3 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.16 2001-03-02 02:45:01 troup Exp $
+# $Id: utils.py,v 1.22 2001-05-17 01:17:54 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
@@ -16,7 +16,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-import commands, os, re, socket, shutil, stat, string, sys, tempfile, apt_pkg
+import commands, os, pwd, re, socket, shutil, stat, string, sys, tempfile
 
 re_comments = re.compile(r"\#.*")
 re_no_epoch = re.compile(r"^\d*\:")
@@ -57,8 +57,6 @@ def our_raw_input():
 
 ######################################################################################
 
-# Obsoleted by python >= 1.6
-
 def str_isnum (s):
     for c in s:
         if c not in string.digits:
@@ -150,6 +148,7 @@ def parse_changes(filename, dsc_whitespace_rules):
         if slf:
             field = string.lower(slf.groups()[0]);
             changes[field] = slf.groups()[1];
+           first = 1;
             continue;
         mld = re.match(r'^ \.$', line);
         if mld:
@@ -157,6 +156,9 @@ def parse_changes(filename, dsc_whitespace_rules):
             continue;
         mlf = re.match(r'^\s(.*)', line);
         if mlf:
+            if first == 1 and changes[field] != "":
+                changes[field] = changes[field] + '\n';
+            first = 0;
            changes[field] = changes[field] + mlf.groups()[0] + '\n';
             continue;
        error = error + line;
@@ -358,10 +360,35 @@ def which_apt_conf_file ():
 
 def regex_safe (s):
     s = string.replace(s, '+', '\\\\+');
+    s = string.replace(s, '.', '\\\\.');
     return s
 
 ######################################################################################
 
+# Perform a substition of template 
+def TemplateSubst(Map,Template):
+    for x in Map.keys():
+        Template = string.replace(Template,x,Map[x]);
+    return Template;
+
+######################################################################################
+
+def fubar(msg, exit_code=1):
+    sys.stderr.write("E: %s\n" % (msg));
+    sys.exit(exit_code);
+
+def warn(msg):
+    sys.stderr.write("W: %s\n" % (msg));
+
+######################################################################################
+
+# Returns the user name with a laughable attempt at rfc822 conformancy
+# (read: removing stray periods).
+def whoami ():
+    return string.replace(string.split(pwd.getpwuid(os.getuid())[4],',')[0], '.', '');
+
+######################################################################################
+
 def size_type (c):
     t  = " b";
     if c > 10000: