X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fmake_overrides.py;h=7ac3ec275fa6a1e04ba471bbc68927e72e6cab88;hb=11dce36cabea5fa916ef6da415b4669898ba9ff7;hp=2517b67a021442c345a24e4dedfc44bf19c87861;hpb=30413cf0ff7bc21b8d2b8b4346406357fe55dc19;p=dak.git diff --git a/dak/make_overrides.py b/dak/make_overrides.py index 2517b67a..7ac3ec27 100755 --- a/dak/make_overrides.py +++ b/dak/make_overrides.py @@ -1,8 +1,11 @@ #!/usr/bin/env python -# Output override files for apt-ftparchive and indices/ -# Copyright (C) 2000, 2001, 2002, 2004 James Troup -# $Id: denise,v 1.18 2005-11-15 09:50:32 ajt Exp $ +""" +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 @@ -21,25 +24,27 @@ ################################################################################ # This is seperate because it's horribly Debian specific and I don't -# want that kind of horribleness in the otherwise generic natalie. It -# does duplicate code tho. +# want that kind of horribleness in the otherwise generic 'dak +# make-overrides'. It does duplicate code tho. ################################################################################ -import pg, sys -import utils, db_access +import pg +import sys import apt_pkg +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 ################################################################################ def usage(exit_code=0): - print """Usage: denise + print """Usage: dak make-overrides Outputs the override tables to text files. -h, --help show this help and exit.""" @@ -48,17 +53,33 @@ 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 = db_access.get_suite_id(suite) + suite_id = database.get_suite_id(suite) if suite_id == -1: utils.fubar("Suite '%s' not recognised." % (suite)) - component_id = db_access.get_component_id(component) + component_id = database.get_component_id(component) if component_id == -1: utils.fubar("Component '%s' not recognised." % (component)) - otype_id = db_access.get_override_type_id(otype) + otype_id = database.get_override_type_id(otype) if otype_id == -1: utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc)" % (otype)) @@ -84,38 +105,36 @@ def main (): global Cnf, projectB, override Cnf = utils.get_conf() - Arguments = [('h',"help","Denise::Options::Help")] + Arguments = [('h',"help","Make-Overrides::Options::Help")] for i in [ "help" ]: - if not Cnf.has_key("Denise::Options::%s" % (i)): - Cnf["Denise::Options::%s" % (i)] = "" + if not Cnf.has_key("Make-Overrides::Options::%s" % (i)): + Cnf["Make-Overrides::Options::%s" % (i)] = "" apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) - Options = Cnf.SubTree("Denise::Options") + Options = Cnf.SubTree("Make-Overrides::Options") if Options["Help"]: - usage() + usage() projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) - db_access.init(Cnf, projectB) + database.init(Cnf, projectB) - for suite in Cnf.SubTree("Cindy::OverrideSuites").List(): - if Cnf.has_key("Suite::%s::Untouchable" % suite) and Cnf["Suite::%s::Untouchable" % suite] != 0: + for suite in Cnf.SubTree("Check-Overrides::OverrideSuites").List(): + if database.get_suite_untouchable(suite): continue suite = suite.lower() sys.stderr.write("Processing %s...\n" % (suite)) override_suite = Cnf["Suite::%s::OverrideCodeName" % (suite)] for component in Cnf.SubTree("Component").List(): - if component == "mixed": - continue; # Ick for otype in Cnf.ValueList("OverrideType"): if otype == "deb": suffix = "" elif otype == "udeb": - if component != "main": - continue; # Ick2 + if component == "contrib": + continue # Ick2 suffix = ".debian-installer" elif otype == "dsc": suffix = ".src" - filename = "%s/override.%s.%s%s" % (Cnf["Dir::Override"], override_suite, component.replace("non-US/", ""), suffix) + filename = "%s/override.%s.%s%s" % (Cnf["Dir::Override"], override_suite, component, suffix) output_file = utils.open_file(filename, 'w') do_list(output_file, suite, component, otype) output_file.close()