X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Foverride.py;h=97439d378e2afe0139ade9b55927ea0f14494b7d;hb=b612f3da207fa0d75a5d3b204ac8f02bb244231a;hp=b981a236e1811eae28a4a5c7170321a39ba2450e;hpb=b1d8f74d334ce0ad78005582ca96285bc6cd0b91;p=dak.git diff --git a/dak/override.py b/dak/override.py index b981a236..97439d37 100755 --- a/dak/override.py +++ b/dak/override.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Microscopic modification and query tool for overrides in projectb +""" Microscopic modification and query tool for overrides in projectb """ # Copyright (C) 2004, 2006 Daniel Silverstone # This program is free software; you can redistribute it and/or modify @@ -27,9 +27,9 @@ import pg, sys import apt_pkg -import daklib.logging -import daklib.database -import daklib.utils +from daklib import logging +from daklib import database +from daklib import utils ################################################################################ @@ -38,9 +38,9 @@ projectB = None ################################################################################ -# Shamelessly stolen from 'dak rm'. Should probably end up in daklib.utils.py +# Shamelessly stolen from 'dak rm'. Should probably end up in utils.py def game_over(): - answer = daklib.utils.our_raw_input("Continue (y/N)? ").lower() + answer = utils.our_raw_input("Continue (y/N)? ").lower() if answer != "y": print "Aborted." sys.exit(1) @@ -60,7 +60,7 @@ Make microchanges or microqueries of the binary overrides def main (): global Cnf, projectB - Cnf = daklib.utils.get_conf() + Cnf = utils.get_conf() Arguments = [('h',"help","Override::Options::Help"), ('d',"done","Override::Options::Done", "HasArg"), @@ -68,27 +68,27 @@ def main (): ('s',"suite","Override::Options::Suite", "HasArg"), ] for i in ["help", "no-action"]: - if not Cnf.has_key("Override::Options::%s" % (i)): - Cnf["Override::Options::%s" % (i)] = "" + if not Cnf.has_key("Override::Options::%s" % (i)): + Cnf["Override::Options::%s" % (i)] = "" if not Cnf.has_key("Override::Options::Suite"): - Cnf["Override::Options::Suite"] = "unstable" + Cnf["Override::Options::Suite"] = "unstable" arguments = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) Options = Cnf.SubTree("Override::Options") if Options["Help"]: - usage() + usage() projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) - daklib.database.init(Cnf, projectB) + database.init(Cnf, projectB) if not arguments: - daklib.utils.fubar("package name is a required argument.") + utils.fubar("package name is a required argument.") package = arguments.pop(0) suite = Options["Suite"] if arguments and len(arguments) > 2: - daklib.utils.fubar("Too many arguments") + utils.fubar("Too many arguments") if arguments and len(arguments) == 1: # Determine if the argument is a priority or a section... @@ -103,13 +103,13 @@ def main (): elif r[0][1] == 1: arguments = (".",arg) else: - daklib.utils.fubar("%s is not a valid section or priority" % (arg)) + utils.fubar("%s is not a valid section or priority" % (arg)) # Retrieve current section/priority... oldsection, oldsourcesection, oldpriority = None, None, None - for type in ['source', 'binary']: + for packagetype in ['source', 'binary']: eqdsc = '!=' - if type == 'source': + if packagetype == 'source': eqdsc = '=' q = projectB.query(""" SELECT priority.priority AS prio, section.section AS sect, override_type.type AS type @@ -126,31 +126,27 @@ def main (): if q.ntuples() == 0: continue if q.ntuples() > 1: - daklib.utils.fubar("%s is ambiguous. Matches %d packages" % (package,q.ntuples())) + utils.fubar("%s is ambiguous. Matches %d packages" % (package,q.ntuples())) r = q.getresult() - if type == 'binary': + if packagetype == 'binary': oldsection = r[0][1] oldpriority = r[0][0] else: oldsourcesection = r[0][1] + oldpriority = 'source' if not oldpriority and not oldsourcesection: - daklib.utils.fubar("Unable to find package %s" % (package)) + utils.fubar("Unable to find package %s" % (package)) if oldsection and oldsourcesection and oldsection != oldsourcesection: # When setting overrides, both source & binary will become the same section - daklib.utils.warn("Source is in section '%s' instead of '%s'" % (oldsourcesection, oldsection)) + utils.warn("Source is in section '%s' instead of '%s'" % (oldsourcesection, oldsection)) if not oldsection: oldsection = oldsourcesection if not arguments: - if oldpriority: - print "%s is in section '%s' at priority '%s'" % ( - package,oldsection,oldpriority) - elif oldsourcesection: - # no use printing this line if also binary - print "%s is in section '%s'" % ( - package,oldsourcesection) + print "%s is in section '%s' at priority '%s'" % ( + package,oldsection,oldpriority) sys.exit(0) # At this point, we have a new section and priority... check they're valid... @@ -165,22 +161,22 @@ def main (): pg._quote(newsection,"str"))) if q.ntuples() == 0: - daklib.utils.fubar("Supplied section %s is invalid" % (newsection)) + utils.fubar("Supplied section %s is invalid" % (newsection)) newsecid = q.getresult()[0][0] q = projectB.query("SELECT id FROM priority WHERE priority=%s" % ( pg._quote(newpriority,"str"))) if q.ntuples() == 0: - daklib.utils.fubar("Supplied priority %s is invalid" % (newpriority)) + utils.fubar("Supplied priority %s is invalid" % (newpriority)) newprioid = q.getresult()[0][0] if newpriority == oldpriority and newsection == oldsection: print "I: Doing nothing" sys.exit(0) - if newpriority and not oldpriority: - daklib.utils.fubar("Trying to set priority of a source-only package") + if oldpriority == 'source' and newpriority != 'source': + utils.fubar("Trying to change priority of a source-only package") # If we're in no-action mode if Options["No-Action"]: @@ -200,13 +196,13 @@ def main (): if not Options.has_key("Done"): pass - #daklib.utils.warn("No bugs to close have been specified. Noone will know you have done this.") + #utils.warn("No bugs to close have been specified. Noone will know you have done this.") else: print "I: Will close bug(s): %s" % (Options["Done"]) game_over() - Logger = daklib.logging.Logger(Cnf, "override") + Logger = logging.Logger(Cnf, "override") projectB.query("BEGIN WORK") # We're in "do it" mode, we have something to do... do it @@ -218,7 +214,7 @@ def main (): AND override.type != %d AND suite = (SELECT id FROM suite WHERE suite_name=%s)""" % ( newprioid, - pg._quote(package,"str"), daklib.database.get_override_type_id("dsc"), + pg._quote(package,"str"), database.get_override_type_id("dsc"), pg._quote(suite,"str") )) Logger.log(["changed priority",package,oldpriority,newpriority]) @@ -247,10 +243,11 @@ def main (): Subst["__BCC__"] = "Bcc: " + ", ".join(bcc) else: Subst["__BCC__"] = "X-Filler: 42" - Subst["__CC__"] = "X-DAK: dak override\nX-Katie: alicia $Revision: 1.6$" + Subst["__CC__"] = "Cc: " + package + "@" + Cnf["Dinstall::PackagesServer"] + "\nX-DAK: dak override\nX-Katie: alicia" Subst["__ADMIN_ADDRESS__"] = Cnf["Dinstall::MyAdminAddress"] Subst["__DISTRO__"] = Cnf["Dinstall::MyDistribution"] - Subst["__WHOAMI__"] = daklib.utils.whoami() + Subst["__WHOAMI__"] = utils.whoami() + Subst["__SOURCE__"] = package summary = "Concerning package %s...\n" % (package) summary += "Operating on the %s suite\n" % (suite) @@ -260,11 +257,11 @@ def main (): summary += "Changed section from %s to %s\n" % (oldsection,newsection) Subst["__SUMMARY__"] = summary - for bug in daklib.utils.split_args(Options["Done"]): + for bug in utils.split_args(Options["Done"]): Subst["__BUG_NUMBER__"] = bug - mail_message = daklib.utils.TemplateSubst( + mail_message = utils.TemplateSubst( Subst,Cnf["Dir::Templates"]+"/override.bug-close") - daklib.utils.send_mail(mail_message) + utils.send_mail(mail_message) Logger.log(["closed bug",bug]) Logger.close()