X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=jeri;h=a0ad9e8b23dced284ec1794257704e8eaeca4423;hb=3686a00f1001f2d5692fa5e706b898053e39191a;hp=2542f43491079d71946d29150ef197e78fd83fdd;hpb=9874d8cdf8943e6420fe04bc6c57ea74cc5df81a;p=dak.git diff --git a/jeri b/jeri index 2542f434..a0ad9e8b 100755 --- a/jeri +++ b/jeri @@ -1,8 +1,8 @@ #!/usr/bin/env python # Dependency check proposed-updates -# Copyright (C) 2001, 2002 James Troup -# $Id: jeri,v 1.9 2002-06-08 00:17:59 troup Exp $ +# Copyright (C) 2001, 2002, 2004 James Troup +# $Id: jeri,v 1.12 2004-02-27 20:07:40 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 @@ -30,7 +30,7 @@ ################################################################################ -import pg, sys, os, string +import pg, sys, os; import utils, db_access import apt_pkg, apt_inst; @@ -47,7 +47,7 @@ architectures = None; def usage (exit_code=0): print """Usage: jeri [OPTION] [...] -Remove obsolete changes files from proposed-updates. +(Very) Basic dependency checking for proposed-updates. -q, --quiet be quieter about what is being done -v, --verbose be more verbose about what is being done @@ -67,7 +67,7 @@ def pp_dep (deps): else: pp_dep = pkg; pp_deps.append(pp_dep); - return string.join(pp_deps, " |"); + return " |".join(pp_deps); ################################################################################ @@ -117,25 +117,25 @@ def check_dep (depends, dep_type, check_archs, filename, files): error = "%s not found. [Real: " % (pp_dep(parsed_dep)) if stable.has_key(dep): if stable[dep].has_key(arch): - error = error + "%s:%s:%s" % (dep, arch, stable[dep][arch]); + error += "%s:%s:%s" % (dep, arch, stable[dep][arch]); else: - error = error + "%s:-:-" % (dep); + error += "%s:-:-" % (dep); else: - error = error + "-:-:-"; - error = error + ", Virtual: "; + error += "-:-:-"; + error += ", Virtual: "; if stable_virtual.has_key(dep): if stable_virtual[dep].has_key(arch): - error = error + "%s:%s" % (dep, arch); + error += "%s:%s" % (dep, arch); else: - error = error + "%s:-"; + error += "%s:-"; else: - error = error + "-:-"; - error = error + ", Upload: "; + error += "-:-"; + error += ", Upload: "; if files.has_key(dep_filename): - error = error + "yes"; + error += "yes"; else: - error = error + "no"; - error = error + "]"; + error += "no"; + error += "]"; unsat.append(error); if unsat: @@ -164,12 +164,12 @@ def check_package(filename, files): pkg_unsat = 0; if Pre_Depends: - pkg_unsat = pkg_unsat + check_dep(Pre_Depends, "pre-dependency", check_archs, base_file, files); + pkg_unsat += check_dep(Pre_Depends, "pre-dependency", check_archs, base_file, files); if Depends: - pkg_unsat = pkg_unsat + check_dep(Depends, "dependency", check_archs, base_file, files); + pkg_unsat += check_dep(Depends, "dependency", check_archs, base_file, files); #if Recommends: - #pkg_unsat = pkg_unsat + check_dep(Recommends, "recommendation", check_archs, base_file, files); + #pkg_unsat += check_dep(Recommends, "recommendation", check_archs, base_file, files); return pkg_unsat; @@ -203,11 +203,11 @@ def check_changes (filename): changes_result = 0; for file in files.keys(): - if file[-4:] == ".deb": + if file.endswith(".deb"): result = check_package(file, files); if Options["verbose"]: pass_fail(file, result); - changes_result = changes_result + result; + changes_result += result; pass_fail (filename, changes_result); @@ -230,13 +230,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"]: @@ -269,8 +269,8 @@ def parse_packages(): stable[package] = {}; stable[package][architecture] = version; if provides: - for virtual_pkg in string.split(provides,","): - virtual_pkg = string.strip(virtual_pkg); + for virtual_pkg in provides.split(","): + virtual_pkg = virtual_pkg.strip(); if not stable_virtual.has_key(virtual_pkg): stable_virtual[virtual_pkg] = {}; stable_virtual[virtual_pkg][architecture] = "NA"; @@ -307,11 +307,11 @@ def main (): print "done."; for file in arguments: - if file[-8:] == ".changes": + if file.endswith(".changes"): check_changes(file); - elif file[-4:] == ".deb": + elif file.endswith(".deb"): check_deb(file); - elif file[-5:] == ".joey": + elif file.endswith(".joey"): check_joey(file); else: utils.fubar("Unrecognised file type: '%s'." % (file));