X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=rene;h=e9a9c04bc3f37a827ed5b615ddddc1e4c9db146a;hb=0033f44841536672e70316678c0ce78099bea144;hp=e4f570a15b5156d9392aa42380fbde9650813f44;hpb=bf489cbe9c0556d9db0a44eca755a152a9b7965e;p=dak.git diff --git a/rene b/rene index e4f570a1..e9a9c04b 100755 --- a/rene +++ b/rene @@ -2,7 +2,7 @@ # Check for obsolete binary packages # Copyright (C) 2000, 2001, 2002 James Troup -# $Id: rene,v 1.13 2002-06-08 00:18:02 troup Exp $ +# $Id: rene,v 1.16 2003-01-02 18:10:02 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,13 +20,13 @@ ################################################################################ -# "Welcome to where time stands still, -# No one leaves and no one will." -# - Sanitarium - Metallica / Master of the puppets +# ``If you're claiming that's a "problem" that needs to be "fixed", +# you might as well write some letters to God about how unfair entropy +# is while you're at it.'' -- 20020802143104.GA5628@azure.humbug.org.au ################################################################################ -import commands, pg, os, string, sys, tempfile; +import commands, pg, os, sys, tempfile; import utils, db_access; import apt_pkg; @@ -37,18 +37,31 @@ projectB = None; ################################################################################ +def usage(exit_code=0): + print """Usage: rene +Check for obsolete or duplicated packages. + + -h, --help show this help and exit.""" + sys.exit(exit_code) + +################################################################################ + def main (): global Cnf, projectB; - Cnf = utils.get_conf() + Cnf = utils.get_conf(); - Arguments = [('h',"help","Catherine::Options::Help"), - ('V',"version","Catherine::Options::Version"), - ('l',"limit", "Catherine::Options::Limit", "HasArg"), - ('n',"no-action","Catherine::Options::No-Action"), - ('v',"verbose","Catherine::Options::Verbose")]; + Arguments = [('h',"help","Rene::Options::Help")]; + for i in [ "help" ]: + if not Cnf.has_key("Rene::Options::%s" % (i)): + Cnf["Rene::Options::%s" % (i)] = ""; + + apt_pkg.ParseCommandLine(Cnf, Arguments, sys.argv); + + Options = Cnf.SubTree("Rene::Options") + if Options["Help"]: + usage(); - apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv); projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])); db_access.init(Cnf, projectB); @@ -81,10 +94,10 @@ def main (): # Check for packages built on architectures they shouldn't be. if architecture != "any" and architecture != "all": architectures = {}; - for arch in string.split(architecture): - architectures[string.strip(arch)] = ""; - for binary in string.split(binaries, ','): - binary = string.strip(binary); + for arch in architecture.split(): + architectures[arch.strip()] = ""; + for binary in binaries.split(','): + binary = binary.strip(); q = projectB.query("SELECT a.arch_string, b.version FROM binaries b, bin_associations ba, architecture a WHERE ba.suite = %s AND ba.bin = b.id AND b.architecture = a.id AND b.package = '%s'" % (suite_id, binary)); ql = q.getresult(); if not ql: @@ -121,10 +134,10 @@ def main (): if src_pkgs.has_key(source): print " %s is a duplicated source package (%s and %s)" % (source, source_index, src_pkgs[source]); src_pkgs[source] = source_index; - for binary in string.split(binaries, ','): - binary = string.strip(binary); + for binary in binaries.split(','): + binary = binary.strip(); if bin_pkgs.has_key(binary): - print " %s is duplicated in %s and %s" % (binary, source, bin_pkgs[binary]); + print " binary %s is duplicated in source packages %s and %s" % (binary, source, bin_pkgs[binary]); bin_pkgs[binary] = source; source_binaries[source] = binaries; @@ -142,7 +155,7 @@ def main (): source = Packages.Section.Find('Source', ""); if source == "": source = package; - if string.find(source, "(") != -1: + if source.find("(") != -1: m = utils.re_extract_src_version.match(source) source = m.group(1) if not bin_pkgs.has_key(package) and not miss_src.has_key(package): @@ -167,7 +180,7 @@ SELECT s.source, s.version AS experimental, s2.version AS unstable print print q -#################################################################################################### +################################################################################ if __name__ == '__main__': main()