X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fmake_overrides.py;h=bff25dd96d539bc4287e26f3607d3b5c0ce630dd;hb=cd5b29ddfd8de263c085f494b9573d683913f6f3;hp=77074ed3d30cfec921b6471b311cda3bceaf17c5;hpb=d9822f04453a1b62ca0aa66e2efeea35f654778f;p=dak.git diff --git a/dak/make_overrides.py b/dak/make_overrides.py old mode 100644 new mode 100755 index 77074ed3..bff25dd9 --- a/dak/make_overrides.py +++ b/dak/make_overrides.py @@ -1,7 +1,11 @@ #!/usr/bin/env python -# Output override files for apt-ftparchive and indices/ -# Copyright (C) 2000, 2001, 2002, 2004, 2006 James Troup +""" +Output override files for apt-ftparchive and indices/ +@contact: Debian FTP Master +@copyright: 2000, 2001, 2002, 2004, 2006 James Troup +@license: GNU General Public License version 2 or later +""" # 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 @@ -25,16 +29,17 @@ ################################################################################ -import pg, sys +import pg +import sys import apt_pkg -import daklib.database -import daklib.utils +from daklib import database +from daklib import utils ################################################################################ -Cnf = None -projectB = None -override = {} +Cnf = None #: Configuration, apt_pkg.Configuration +projectB = None #: database connection, pgobject +override = {} #: override data to write out ################################################################################ @@ -48,19 +53,35 @@ Outputs the override tables to text files. ################################################################################ def do_list(output_file, suite, component, otype): + """ + Fetch override data for suite from the database and dump it. + + @type output_file: fileobject + @param output_file: where to write the overrides to + + @type suite: string + @param suite: The name of the suite + + @type component: string + @param component: The name of the component + + @type otype: string + @param otype: type of override. deb/udeb/dsc + + """ global override - suite_id = daklib.database.get_suite_id(suite) + suite_id = database.get_suite_id(suite) if suite_id == -1: - daklib.utils.fubar("Suite '%s' not recognised." % (suite)) + utils.fubar("Suite '%s' not recognised." % (suite)) - component_id = daklib.database.get_component_id(component) + component_id = database.get_component_id(component) if component_id == -1: - daklib.utils.fubar("Component '%s' not recognised." % (component)) + utils.fubar("Component '%s' not recognised." % (component)) - otype_id = daklib.database.get_override_type_id(otype) + otype_id = database.get_override_type_id(otype) if otype_id == -1: - daklib.utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc)" % (otype)) + utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc)" % (otype)) override.setdefault(suite, {}) override[suite].setdefault(component, {}) @@ -70,20 +91,20 @@ def do_list(output_file, suite, component, otype): q = projectB.query("SELECT o.package, s.section, o.maintainer FROM override o, section s WHERE o.suite = %s AND o.component = %s AND o.type = %s AND o.section = s.id ORDER BY s.section, o.package" % (suite_id, component_id, otype_id)) for i in q.getresult(): override[suite][component][otype][i[0]] = i - output_file.write(daklib.utils.result_join(i)+'\n') + output_file.write(utils.result_join(i)+'\n') else: q = projectB.query("SELECT o.package, p.priority, s.section, o.maintainer, p.level FROM override o, priority p, section s WHERE o.suite = %s AND o.component = %s AND o.type = %s AND o.priority = p.id AND o.section = s.id ORDER BY s.section, p.level, o.package" % (suite_id, component_id, otype_id)) for i in q.getresult(): i = i[:-1]; # Strip the priority level override[suite][component][otype][i[0]] = i - output_file.write(daklib.utils.result_join(i)+'\n') + output_file.write(utils.result_join(i)+'\n') ################################################################################ def main (): global Cnf, projectB, override - Cnf = daklib.utils.get_conf() + Cnf = utils.get_conf() Arguments = [('h',"help","Make-Overrides::Options::Help")] for i in [ "help" ]: if not Cnf.has_key("Make-Overrides::Options::%s" % (i)): @@ -94,7 +115,7 @@ def main (): usage() projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) - daklib.database.init(Cnf, projectB) + database.init(Cnf, projectB) for suite in Cnf.SubTree("Check-Overrides::OverrideSuites").List(): if Cnf.has_key("Suite::%s::Untouchable" % suite) and Cnf["Suite::%s::Untouchable" % suite] != 0: @@ -105,18 +126,18 @@ def main (): override_suite = Cnf["Suite::%s::OverrideCodeName" % (suite)] for component in Cnf.SubTree("Component").List(): if component == "mixed": - continue; # Ick + continue # Ick for otype in Cnf.ValueList("OverrideType"): if otype == "deb": suffix = "" elif otype == "udeb": if component == "contrib": - continue; # Ick2 + continue # Ick2 suffix = ".debian-installer" elif otype == "dsc": suffix = ".src" filename = "%s/override.%s.%s%s" % (Cnf["Dir::Override"], override_suite, component, suffix) - output_file = daklib.utils.open_file(filename, 'w') + output_file = utils.open_file(filename, 'w') do_list(output_file, suite, component, otype) output_file.close()