X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=halle;h=29fd9240b4a569d636661bf5d88f316e6f597ff0;hb=9540d873fa78598454af57f5f8a4875969ed0439;hp=47698ec51373a3ffe781031f4095328d0015c2b9;hpb=128efbec918878ff597f09d39779bdf37844149d;p=dak.git diff --git a/halle b/halle index 47698ec5..29fd9240 100755 --- a/halle +++ b/halle @@ -1,8 +1,8 @@ #!/usr/bin/env python # Remove obsolete .changes files from proposed-updates -# Copyright (C) 2001, 2002 James Troup -# $Id: halle,v 1.8 2002-06-08 00:17:53 troup Exp $ +# Copyright (C) 2001, 2002, 2003, 2004 James Troup +# $Id: halle,v 1.13 2005-12-17 10:57:03 rmurray 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 @@ -20,7 +20,7 @@ ################################################################################ -import os, pg, re, sys, string; +import os, pg, re, sys; import utils, db_access; import apt_pkg; @@ -31,7 +31,7 @@ projectB = None; Options = None; pu = {}; -re_isdeb = re.compile (r"^(.+)_(.+?)_(.+?).deb$"); +re_isdeb = re.compile (r"^(.+)_(.+?)_(.+?).u?deb$"); ################################################################################ @@ -56,7 +56,7 @@ def check_changes (filename): return; num_files = len(files.keys()); for file in files.keys(): - if utils.re_isadeb.match(file) != None: + if utils.re_isadeb.match(file): m = re_isdeb.match(file); pkg = m.group(1); version = m.group(2); @@ -65,13 +65,13 @@ def check_changes (filename): print "BINARY: %s ==> %s_%s_%s" % (file, pkg, version, arch); else: m = utils.re_issource.match(file) - if m != None: + if m: pkg = m.group(1); version = m.group(2); type = m.group(3); if type != "dsc": del files[file]; - num_files = num_files - 1; + num_files -= 1; continue; arch = "source"; if Options["debug"]: @@ -79,9 +79,13 @@ def check_changes (filename): else: utils.fubar("unknown type, fix me"); if not pu.has_key(pkg): - utils.fubar("%s doesn't seem to exist in p-u?? (from %s [%s])" % (pkg, file, filename)); + # FIXME + utils.warn("%s doesn't seem to exist in p-u?? (from %s [%s])" % (pkg, file, filename)); + continue; if not pu[pkg].has_key(arch): - utils.fubar("%s doesn't seem to exist for %s in p-u?? (from %s [%s])" % (pkg, arch, file, filename)); + # FIXME + utils.warn("%s doesn't seem to exist for %s in p-u?? (from %s [%s])" % (pkg, arch, file, filename)); + continue; pu_version = utils.re_no_epoch.sub('', pu[pkg][arch]); if pu_version == version: if Options["verbose"]: @@ -111,13 +115,13 @@ def check_joey (filename): os.chdir("%s/dists/proposed-updates" % (Cnf["Dir::Root"])); for line in file.readlines(): - line = string.rstrip(line) - if string.find(line, 'install') != -1: - split_line = string.split(line); + line = line.rstrip(); + if line.find('install') != -1: + split_line = line.split(); if len(split_line) != 2: utils.fubar("Parse error (not exactly 2 elements): %s" % (line)); install_type = split_line[0]; - if [ "install", "install-u", "sync-install" ].count(install_type) == 0: + if install_type not in [ "install", "install-u", "sync-install" ]: utils.fubar("Unknown install type ('%s') from: %s" % (install_type, line)); changes_filename = split_line[1] if Options["debug"]: @@ -177,9 +181,9 @@ def main (): init_pu(); for file in arguments: - if file[-8:] == ".changes": + if file.endswith(".changes"): check_changes(file); - elif file[-5:] == ".joey": + elif file.endswith(".joey"): check_joey(file); else: utils.fubar("Unrecognised file type: '%s'." % (file));