X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=halle;h=339fd262799d5d794e126c0cfa8c3d82859c7d40;hb=012c7585d4a39798f35a487eda5110ff653de133;hp=e1705958dcb25faee2e6a2ad0fe516edb9fa3ab0;hpb=f3adcc5ec038ffdbe4e34d9b96dca77a94cb0cf8;p=dak.git diff --git a/halle b/halle index e1705958..339fd262 100755 --- a/halle +++ b/halle @@ -1,8 +1,8 @@ #!/usr/bin/env python # Remove obsolete .changes files from proposed-updates -# Copyright (C) 2001 James Troup -# $Id: halle,v 1.1 2001-11-04 20:41:50 troup Exp $ +# Copyright (C) 2001, 2002 James Troup +# $Id: halle,v 1.7 2002-05-18 23:54:51 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,32 +20,42 @@ ################################################################################ -import os, pg, re, sys, string -import utils, db_access -import apt_pkg, apt_inst; +import os, pg, re, sys, string; +import utils, db_access; +import apt_pkg; ################################################################################ Cnf = None; projectB = None; +Options = None; pu = {}; re_isdeb = re.compile (r"^(.+)_(.+?)_(.+?).deb$"); ################################################################################ +def usage (exit_code=0): + print """Usage: halle [OPTION] [...] +Remove obsolete changes files from proposed-updates. + + -v, --verbose be more verbose about what is being done + -h, --help show this help and exit + +Need either changes files or an admin.txt file with a '.joey' suffix.""" + sys.exit(exit_code) + +################################################################################ def check_changes (filename): try: - changes = utils.parse_changes(filename, 0) - files = utils.build_file_list(changes, ""); + changes = utils.parse_changes(filename); + files = utils.build_file_list(changes); except: utils.warn("Couldn't read changes file '%s'." % (filename)); return; num_files = len(files.keys()); for file in files.keys(): - re_isadeb = re.compile (r".*\.u?deb$"); - if utils.re_isadeb.match(file) != None: m = re_isdeb.match(file); pkg = m.group(1); @@ -98,7 +108,7 @@ def check_joey (filename): file = utils.open_file(filename); cwd = os.getcwd(); - os.chdir("%s/dists/proposed-updates" % (Cnf["Dir::RootDir"])); + os.chdir("%s/dists/proposed-updates" % (Cnf["Dir::Root"])); for line in file.readlines(): line = line[:-1]; @@ -144,25 +154,21 @@ ORDER BY package, version, arch_string; def main (): global Cnf, projectB, Options; - apt_pkg.init(); - - Cnf = apt_pkg.newConfiguration(); - apt_pkg.ReadConfigFileISC(Cnf,utils.which_conf_file()); + Cnf = utils.get_conf() - Arguments = [('q',"quiet","Halle::Options::Quiet"), + Arguments = [('d', "debug", "Halle::Options::Debug"), ('v',"verbose","Halle::Options::Verbose"), - ('D',"debug","Halle::Options::Debug"), - ('h',"help","Halle::Options::Help"), - ('V',"version","Halle::Options::Version")]; - for i in [ "quiet", "verbose", "help", "debug" ]: - Cnf["Halle::Options::%s" % (i)] = ""; + ('h',"help","Halle::Options::Help")]; + for i in [ "debug", "verbose", "help" ]: + if not Cnf.has_key("Halle::Options::%s" % (i)): + Cnf["Halle::Options::%s" % (i)] = ""; arguments = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv); Options = Cnf.SubTree("Halle::Options") if Options["Help"]: usage(0); - if arguments == []: + if not arguments: utils.fubar("need at least one package name as an argument."); projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"]));