]> git.decadent.org.uk Git - dak.git/blobdiff - dak/control_overrides.py
Enmasse adaptation for removal of silly names.
[dak.git] / dak / control_overrides.py
index 4015f2aeb0a76547eff627d350d7e68126015c9a..cf33e26f05fa6a2273781708a0035714a2dbcf05 100755 (executable)
@@ -1,8 +1,7 @@
 #!/usr/bin/env python
 
-# Manipulate override files
-# Copyright (C) 2000, 2001, 2002, 2003  James Troup <james@nocrew.org>
-# $Id: natalie,v 1.7 2005-11-15 09:50:32 ajt Exp $
+# Bulk manipulation of the overrides
+# Copyright (C) 2000, 2001, 2002, 2003, 2006  James Troup <james@nocrew.org>
 
 # 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
@@ -51,7 +50,7 @@
 ################################################################################
 
 import pg, sys, time
-import utils, db_access, logging
+import dak.lib.utils, dak.lib.database, dak.lib.logging
 import apt_pkg
 
 ################################################################################
@@ -63,7 +62,7 @@ Logger = None
 ################################################################################
 
 def usage (exit_code=0):
-    print """Usage: natalie.py [OPTIONS]
+    print """Usage: dak control-overrides [OPTIONS]
   -h, --help               print this help and exit
 
   -c, --component=CMPT     list/set overrides by component
@@ -85,17 +84,17 @@ def usage (exit_code=0):
 ################################################################################
 
 def process_file (file, suite, component, type, action):
-    suite_id = db_access.get_suite_id(suite)
+    suite_id = dak.lib.database.get_suite_id(suite)
     if suite_id == -1:
-        utils.fubar("Suite '%s' not recognised." % (suite))
+        dak.lib.utils.fubar("Suite '%s' not recognised." % (suite))
 
-    component_id = db_access.get_component_id(component)
+    component_id = dak.lib.database.get_component_id(component)
     if component_id == -1:
-        utils.fubar("Component '%s' not recognised." % (component))
+        dak.lib.utils.fubar("Component '%s' not recognised." % (component))
 
-    type_id = db_access.get_override_type_id(type)
+    type_id = dak.lib.database.get_override_type_id(type)
     if type_id == -1:
-        utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc.)" % (type))
+        dak.lib.utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc.)" % (type))
 
     # --set is done mostly internal for performance reasons; most
     # invocations of --set will be updates and making people wait 2-3
@@ -117,7 +116,7 @@ def process_file (file, suite, component, type, action):
     start_time = time.time()
     projectB.query("BEGIN WORK")
     for line in file.readlines():
-        line = utils.re_comments.sub('', line).strip()
+        line = dak.lib.utils.re_comments.sub('', line).strip()
         if line == "":
             continue
 
@@ -129,7 +128,7 @@ def process_file (file, suite, component, type, action):
             elif len(split_line) == 3:
                 (package, section, maintainer_override) = split_line
             else:
-                utils.warn("'%s' does not break into 'package section [maintainer-override]'." % (line))
+                dak.lib.utils.warn("'%s' does not break into 'package section [maintainer-override]'." % (line))
                 c_error += 1
                 continue
             priority = "source"
@@ -140,23 +139,23 @@ def process_file (file, suite, component, type, action):
             elif len(split_line) == 4:
                 (package, priority, section, maintainer_override) = split_line
             else:
-                utils.warn("'%s' does not break into 'package priority section [maintainer-override]'." % (line))
+                dak.lib.utils.warn("'%s' does not break into 'package priority section [maintainer-override]'." % (line))
                 c_error += 1
                 continue
 
-        section_id = db_access.get_section_id(section)
+        section_id = dak.lib.database.get_section_id(section)
         if section_id == -1:
-            utils.warn("'%s' is not a valid section. ['%s' in suite %s, component %s]." % (section, package, suite, component))
+            dak.lib.utils.warn("'%s' is not a valid section. ['%s' in suite %s, component %s]." % (section, package, suite, component))
             c_error += 1
             continue
-        priority_id = db_access.get_priority_id(priority)
+        priority_id = dak.lib.database.get_priority_id(priority)
         if priority_id == -1:
-            utils.warn("'%s' is not a valid priority. ['%s' in suite %s, component %s]." % (priority, package, suite, component))
+            dak.lib.utils.warn("'%s' is not a valid priority. ['%s' in suite %s, component %s]." % (priority, package, suite, component))
             c_error += 1
             continue
 
         if new.has_key(package):
-            utils.warn("Can't insert duplicate entry for '%s'; ignoring all but the first. [suite %s, component %s]" % (package, suite, component))
+            dak.lib.utils.warn("Can't insert duplicate entry for '%s'; ignoring all but the first. [suite %s, component %s]" % (package, suite, component))
             c_error += 1
             continue
         new[package] = ""
@@ -207,84 +206,86 @@ def process_file (file, suite, component, type, action):
                 Logger.log(["removed override",suite,component,type,package])
 
     projectB.query("COMMIT WORK")
-    if not Cnf["Natalie::Options::Quiet"]:
+    if not Cnf["Control-Overrides::Options::Quiet"]:
         print "Done in %d seconds. [Updated = %d, Added = %d, Removed = %d, Skipped = %d, Errors = %d]" % (int(time.time()-start_time), c_updated, c_added, c_removed, c_skipped, c_error)
     Logger.log(["set complete",c_updated, c_added, c_removed, c_skipped, c_error])
 
 ################################################################################
 
 def list(suite, component, type):
-    suite_id = db_access.get_suite_id(suite)
+    suite_id = dak.lib.database.get_suite_id(suite)
     if suite_id == -1:
-        utils.fubar("Suite '%s' not recognised." % (suite))
+        dak.lib.utils.fubar("Suite '%s' not recognised." % (suite))
 
-    component_id = db_access.get_component_id(component)
+    component_id = dak.lib.database.get_component_id(component)
     if component_id == -1:
-        utils.fubar("Component '%s' not recognised." % (component))
+        dak.lib.utils.fubar("Component '%s' not recognised." % (component))
 
-    type_id = db_access.get_override_type_id(type)
+    type_id = dak.lib.database.get_override_type_id(type)
     if type_id == -1:
-        utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc)" % (type))
+        dak.lib.utils.fubar("Type '%s' not recognised. (Valid types are deb, udeb and dsc)" % (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 utils.result_join(i)
+            print dak.lib.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 utils.result_join(i[:-1])
+            print dak.lib.utils.result_join(i[:-1])
 
 ################################################################################
 
 def main ():
     global Cnf, projectB, Logger
 
-    Cnf = utils.get_conf()
-    Arguments = [('a', "add", "Natalie::Options::Add"),
-                 ('c', "component", "Natalie::Options::Component", "HasArg"),
-                 ('h', "help", "Natalie::Options::Help"),
-                 ('l', "list", "Natalie::Options::List"),
-                 ('q', "quiet", "Natalie::Options::Quiet"),
-                 ('s', "suite", "Natalie::Options::Suite", "HasArg"),
-                 ('S', "set", "Natalie::Options::Set"),
-                 ('t', "type", "Natalie::Options::Type", "HasArg")]
+    Cnf = dak.lib.utils.get_conf()
+    Arguments = [('a', "add", "Control-Overrides::Options::Add"),
+                 ('c', "component", "Control-Overrides::Options::Component", "HasArg"),
+                 ('h', "help", "Control-Overrides::Options::Help"),
+                 ('l', "list", "Control-Overrides::Options::List"),
+                 ('q', "quiet", "Control-Overrides::Options::Quiet"),
+                 ('s', "suite", "Control-Overrides::Options::Suite", "HasArg"),
+                 ('S', "set", "Control-Overrides::Options::Set"),
+                 ('t', "type", "Control-Overrides::Options::Type", "HasArg")]
 
     # Default arguments
     for i in [ "add", "help", "list", "quiet", "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"
+       if not Cnf.has_key("Control-Overrides::Options::%s" % (i)):
+           Cnf["Control-Overrides::Options::%s" % (i)] = ""
+    if not Cnf.has_key("Control-Overrides::Options::Component"):
+       Cnf["Control-Overrides::Options::Component"] = "main"
+    if not Cnf.has_key("Control-Overrides::Options::Suite"):
+       Cnf["Control-Overrides::Options::Suite"] = "unstable"
+    if not Cnf.has_key("Control-Overrides::Options::Type"):
+       Cnf["Control-Overrides::Options::Type"] = "deb"
 
     file_list = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
 
-    if Cnf["Natalie::Options::Help"]:
+    if Cnf["Control-Overrides::Options::Help"]:
         usage()
 
     projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"]))
-    db_access.init(Cnf, projectB)
+    dak.lib.database.init(Cnf, projectB)
 
     action = None
     for i in [ "add", "list", "set" ]:
-        if Cnf["Natalie::Options::%s" % (i)]:
+        if Cnf["Control-Overrides::Options::%s" % (i)]:
             if action:
-                utils.fubar("Can not perform more than one action at once.")
+                dak.lib.utils.fubar("Can not perform more than one action at once.")
             action = i
 
-    (suite, component, type) = (Cnf["Natalie::Options::Suite"], Cnf["Natalie::Options::Component"], Cnf["Natalie::Options::Type"])
+    (suite, component, type) = (Cnf["Control-Overrides::Options::Suite"],
+                                Cnf["Control-Overrides::Options::Component"],
+                                Cnf["Control-Overrides::Options::Type"])
 
     if action == "list":
         list(suite, component, type)
     else:
-        Logger = logging.Logger(Cnf, "natalie")
+        Logger = dak.lib.logging.Logger(Cnf, "control-overrides")
         if file_list:
             for file in file_list:
-                process_file(utils.open_file(file), suite, component, type, action)
+                process_file(dak.lib.utils.open_file(file), suite, component, type, action)
         else:
             process_file(sys.stdin, suite, component, type, action)
         Logger.close()