X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils.py;h=b45a7454c0337194c5e1a5e32bc2e294e58f4475;hb=ea8a9164c25df9e05e656d9ee4c12542c8f99a71;hp=2f42cb39a617f8d794158d45ad964e4e239e62fb;hpb=a0b2b1aafec94c872ddcf2cd21dada1f0ab9240c;p=dak.git diff --git a/utils.py b/utils.py index 2f42cb39..b45a7454 100644 --- a/utils.py +++ b/utils.py @@ -1,6 +1,6 @@ # Utility functions # Copyright (C) 2000 James Troup -# $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: