]> git.decadent.org.uk Git - dak.git/blobdiff - utils.py
Add TemplateSubst.
[dak.git] / utils.py
index 2f42cb39a617f8d794158d45ad964e4e239e62fb..b45a7454c0337194c5e1a5e32bc2e294e58f4475 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.13 2001-01-28 09:06:44 troup Exp $
+# $Id: utils.py,v 1.18 2001-03-21 01:02:04 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
@@ -23,6 +23,8 @@ re_no_epoch = re.compile(r"^\d*\:")
 re_no_revision = re.compile(r"\-[^-]*$")
 re_arch_from_filename = re.compile(r"/binary-[^/]+/")
 re_extract_src_version = re.compile (r"(\S+)\s*\((.*)\)")
+re_isadeb = re.compile (r'.*\.u?deb$');
+re_issource = re.compile (r'(.+)_(.+?)\.(orig\.tar\.gz|diff\.gz|tar\.gz|dsc)');
 
 changes_parse_error_exc = "Can't parse line in .changes file";
 invalid_dsc_format_exc = "Invalid .dsc file";
@@ -55,6 +57,14 @@ def our_raw_input():
 
 ######################################################################################
 
+def str_isnum (s):
+    for c in s:
+        if c not in string.digits:
+            return 0;
+    return 1;
+
+######################################################################################
+
 # What a mess.  FIXME
 def extract_component_from_section(section):
     component = "";
@@ -97,6 +107,9 @@ def parse_changes(filename, dsc_whitespace_rules):
     changes = {};
     lines = changes_in.readlines();
 
+    if lines == []:
+       raise changes_parse_error_exc, "[Empty changes file]";
+
     # Reindex by line number so we can easily verify the format of
     # .dsc files...
     index = 0;
@@ -325,6 +338,17 @@ def which_conf_file ():
     else:
         raise unknown_hostname_exc, archive
 
+# FIXME: if the above isn't great, this can't be either :)
+
+def which_apt_conf_file ():
+    archive = where_am_i ();
+    if archive == 'non-US':
+        return '/org/non-us.debian.org/katie/apt.conf-non-US';
+    elif archive == 'ftp-master':
+        return '/org/ftp.debian.org/katie/apt.conf';
+    else:
+        raise unknown_hostname_exc, archive
+
 ######################################################################################
 
 # Escape characters which have meaning to SQL's regex comparison operator ('~')
@@ -336,6 +360,14 @@ def regex_safe (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 size_type (c):
     t  = " b";
     if c > 10000: