X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=halle;h=655c83de37b7af5fa9d714ad10f6242b456ba5ec;hb=c0065a491661ad115cb59ed84c47e638744b9823;hp=1a16ffe07be36e64d0b6fecd241b88d143bdfdc0;hpb=6213711af5ba0009dd1e5290eeb665f5c51e9fa8;p=dak.git diff --git a/halle b/halle index 1a16ffe0..655c83de 100755 --- a/halle +++ b/halle @@ -1,8 +1,8 @@ #!/usr/bin/env python # Remove obsolete .changes files from proposed-updates -# Copyright (C) 2001 James Troup -# $Id: halle,v 1.5 2002-03-31 16:14:42 troup Exp $ +# Copyright (C) 2001, 2002, 2003, 2004 James Troup +# $Id: halle,v 1.12 2004-03-11 00:20:51 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 @@ -20,7 +20,7 @@ ################################################################################ -import os, pg, re, sys, string; +import os, pg, re, sys; import utils, db_access; import apt_pkg; @@ -49,14 +49,14 @@ Need either changes files or an admin.txt file with a '.joey' suffix.""" def check_changes (filename): try: - changes = utils.parse_changes(filename, 0) - files = utils.build_file_list(changes, ""); + changes = utils.parse_changes(filename); + files = utils.build_file_list(changes); except: utils.warn("Couldn't read changes file '%s'." % (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"]: @@ -108,18 +112,18 @@ def check_joey (filename): file = utils.open_file(filename); cwd = os.getcwd(); - os.chdir("%s/dists/proposed-updates" % (Cnf["Dir::RootDir"])); + os.chdir("%s/dists/proposed-updates" % (Cnf["Dir::Root"])); for line in file.readlines(): - line = line[:-1]; - 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 len(split_line) != 2: - utils.fubar("Parse error (more than 2 elements): %s" % (line)); if Options["debug"]: print "Processing %s..." % (changes_filename); check_changes(changes_filename); @@ -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));