#!/usr/bin/env python
-# Manipulate suite tags
+""" Manipulate suite tags """
# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 James Troup <james@nocrew.org>
# This program is free software; you can redistribute it and/or modify
import pg, sys
import apt_pkg
-import dak.lib.database as database
-import dak.lib.logging as logging
-import dak.lib.utils as utils
+from daklib import database
+from daklib import logging
+from daklib import utils
#######################################################################################
ql = q.getresult()
if not ql:
- utils.warn("Couldn't find '%s~%s~%s'." % (package, version, architecture))
+ utils.warn("Couldn't find '%s_%s_%s'." % (package, version, architecture))
return None
if len(ql) > 1:
- utils.warn("Found more than one match for '%s~%s~%s'." % (package, version, architecture))
+ utils.warn("Found more than one match for '%s_%s_%s'." % (package, version, architecture))
return None
- id = ql[0][0]
- return id
+ return ql[0][0]
#######################################################################################
for key in current.keys():
if not desired.has_key(key):
(package, version, architecture) = key.split()
- id = current[key]
+ pkid = current[key]
if architecture == "source":
- q = projectB.query("DELETE FROM src_associations WHERE id = %s" % (id))
+ q = projectB.query("DELETE FROM src_associations WHERE id = %s" % (pkid))
else:
- q = projectB.query("DELETE FROM bin_associations WHERE id = %s" % (id))
- Logger.log(["removed",key,id])
+ q = projectB.query("DELETE FROM bin_associations WHERE id = %s" % (pkid))
+ Logger.log(["removed", key, pkid])
# Check to see which packages need added and add them
for key in desired.keys():
if not current.has_key(key):
(package, version, architecture) = key.split()
- id = get_id (package, version, architecture)
- if not id:
+ pkid = get_id (package, version, architecture)
+ if not pkid:
continue
if architecture == "source":
- q = projectB.query("INSERT INTO src_associations (suite, source) VALUES (%s, %s)" % (suite_id, id))
+ q = projectB.query("INSERT INTO src_associations (suite, source) VALUES (%s, %s)" % (suite_id, pkid))
else:
- q = projectB.query("INSERT INTO bin_associations (suite, bin) VALUES (%s, %s)" % (suite_id, id))
- Logger.log(["added",key,id])
+ q = projectB.query("INSERT INTO bin_associations (suite, bin) VALUES (%s, %s)" % (suite_id, pkid))
+ Logger.log(["added", key, pkid])
projectB.query("COMMIT WORK")
(package, version, architecture) = split_line
- id = get_id(package, version, architecture)
- if not id:
+ pkid = get_id(package, version, architecture)
+ if not pkid:
continue
if architecture == "source":
# Find the existing assoications ID, if any
- q = projectB.query("SELECT id FROM src_associations WHERE suite = %s and source = %s" % (suite_id, id))
+ q = projectB.query("SELECT id FROM src_associations WHERE suite = %s and source = %s" % (suite_id, pkid))
ql = q.getresult()
if not ql:
assoication_id = None
# Take action
if action == "add":
if assoication_id:
- utils.warn("'%s~%s~%s' already exists in suite %s." % (package, version, architecture, suite))
+ utils.warn("'%s_%s_%s' already exists in suite %s." % (package, version, architecture, suite))
continue
else:
- q = projectB.query("INSERT INTO src_associations (suite, source) VALUES (%s, %s)" % (suite_id, id))
+ q = projectB.query("INSERT INTO src_associations (suite, source) VALUES (%s, %s)" % (suite_id, pkid))
elif action == "remove":
if assoication_id == None:
- utils.warn("'%s~%s~%s' doesn't exist in suite %s." % (package, version, architecture, suite))
+ utils.warn("'%s_%s_%s' doesn't exist in suite %s." % (package, version, architecture, suite))
continue
else:
q = projectB.query("DELETE FROM src_associations WHERE id = %s" % (assoication_id))
else:
# Find the existing assoications ID, if any
- q = projectB.query("SELECT id FROM bin_associations WHERE suite = %s and bin = %s" % (suite_id, id))
+ q = projectB.query("SELECT id FROM bin_associations WHERE suite = %s and bin = %s" % (suite_id, pkid))
ql = q.getresult()
if not ql:
assoication_id = None
# Take action
if action == "add":
if assoication_id:
- utils.warn("'%s~%s~%s' already exists in suite %s." % (package, version, architecture, suite))
+ utils.warn("'%s_%s_%s' already exists in suite %s." % (package, version, architecture, suite))
continue
else:
- q = projectB.query("INSERT INTO bin_associations (suite, bin) VALUES (%s, %s)" % (suite_id, id))
+ q = projectB.query("INSERT INTO bin_associations (suite, bin) VALUES (%s, %s)" % (suite_id, pkid))
elif action == "remove":
if assoication_id == None:
- utils.warn("'%s~%s~%s' doesn't exist in suite %s." % (package, version, architecture, suite))
+ utils.warn("'%s_%s_%s' doesn't exist in suite %s." % (package, version, architecture, suite))
continue
else:
q = projectB.query("DELETE FROM bin_associations WHERE id = %s" % (assoication_id))
('s',"set", "Control-Suite::Options::Set", "HasArg")]
for i in ["add", "help", "list", "remove", "set", "version" ]:
- if not Cnf.has_key("Control-Suite::Options::%s" % (i)):
- Cnf["Control-Suite::Options::%s" % (i)] = ""
-
- file_list = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
+ if not Cnf.has_key("Control-Suite::Options::%s" % (i)):
+ Cnf["Control-Suite::Options::%s" % (i)] = ""
+
+ try:
+ file_list = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv);
+ except SystemError, e:
+ print "%s\n" % e
+ usage(1)
Options = Cnf.SubTree("Control-Suite::Options")
if Options["Help"]:
- usage()
+ usage()
projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"],int(Cnf["DB::Port"]))
utils.fubar("No action specified.")
# Safety/Sanity check
- if action == "set" and suite != "testing":
- utils.fubar("Will not reset a suite other than testing.")
+ if action == "set" and suite not in ["testing", "etch-m68k"]:
+ utils.fubar("Will not reset suite %s" % (suite))
if action == "list":
get_list(suite)
else:
Logger = logging.Logger(Cnf, "control-suite")
if file_list:
- for file in file_list:
- process_file(utils.open_file(file), suite, action)
+ for f in file_list:
+ process_file(utils.open_file(f), suite, action)
else:
process_file(sys.stdin, suite, action)
Logger.close()
if __name__ == '__main__':
main()
-