X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=natalie.py;h=8fc1c0d9149885348c2ec3c4e1cb012f4b1db6e3;hb=17e9953dd661c4bc6da7c3c7072fb364c2f49bf4;hp=4f127a1e8aaa00207a3887bc4429587d881586a9;hpb=6107f16d4e55f6b640f4dc377753aee684d1ac14;p=dak.git diff --git a/natalie.py b/natalie.py index 4f127a1e..8fc1c0d9 100755 --- a/natalie.py +++ b/natalie.py @@ -2,7 +2,7 @@ # Manipulate override files # Copyright (C) 2000, 2001 James Troup -# $Id: natalie.py,v 1.8 2001-08-21 15:40:10 troup Exp $ +# $Id: natalie.py,v 1.15 2002-02-12 22:14:38 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,7 +20,7 @@ ################################################################################ -import errno, os, pg, pwd, string, sys, time; +import pg, string, sys, time; import utils, db_access, logging; import apt_pkg; @@ -32,11 +32,9 @@ Logger = None; ################################################################################ -def usage (exit_code): +def usage (exit_code=0): print """Usage: natalie.py [OPTIONS] - -D, --debug=VALUE debug -h, --help this help - -V, --version retrieve version -c, --component=CMPT list/set overrides by component (contrib,*main,non-free) -s, --suite=SUITE list/set overrides by suite @@ -94,7 +92,7 @@ def process_file (file, suite, component, type): if line == "": continue; - maintainer_override = ""; + maintainer_override = None; if type == "dsc": split_line = string.split(line, None, 2); if len(split_line) == 2: @@ -196,33 +194,40 @@ def list(suite, component, type): if type == "dsc": 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, type_id)); for i in q.getresult(): - print string.join(i, '\t'); + print utils.result_join(i); 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, type_id)); for i in q.getresult(): - print string.join(i[:-1], '\t'); + print utils.result_join(i[:-1]); ################################################################################ def main (): global Cnf, projectB, Logger; - apt_pkg.init(); - - Cnf = apt_pkg.newConfiguration(); - apt_pkg.ReadConfigFileISC(Cnf,utils.which_conf_file()); - Arguments = [('D',"debug","Natalie::Options::Debug", "IntVal"), - ('h',"help","Natalie::Options::Help"), - ('V',"version","Natalie::Options::Version"), + Cnf = utils.get_conf() + Arguments = [('h',"help","Natalie::Options::Help"), ('c',"component", "Natalie::Options::Component", "HasArg"), ('l',"list", "Natalie::Options::List"), ('s',"suite","Natalie::Options::Suite", "HasArg"), ('S',"set","Natalie::Options::Set"), ('t',"type","Natalie::Options::Type", "HasArg")]; + + # Default arguments + for i in ["help", "list", "set" ]: + if not Cnf.has_key("Natalie::Options::%s" % (i)): + Cnf["Natalie::Options::%s" % (i)] = ""; + if not Cnf.has_key("Natalie::Options::Component"): + Cnf["Natalie::Options::Component"] = "main"; + if not Cnf.has_key("Natalie::Options::Suite"): + Cnf["Natalie::Options::Suite"] = "unstable"; + if not Cnf.has_key("Natalie::Options::Type"): + Cnf["Natalie::Options::Type"] = "deb"; + file_list = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv); if Cnf["Natalie::Options::Help"]: - usage(0); + usage(); init(); @@ -241,7 +246,7 @@ def main (): Logger = logging.Logger(Cnf, "natalie"); if file_list != []: for file in file_list: - process_file(utils.open_file(file,'r'), suite, component, type); + process_file(utils.open_file(file), suite, component, type); else: process_file(sys.stdin, suite, component, type); Logger.close();