]> git.decadent.org.uk Git - dak.git/blobdiff - dak/control_overrides.py
Merge branch 'psycopg2' into content_generation
[dak.git] / dak / control_overrides.py
index 851e8cd4092d756a93d7be32148db1a611fa4e62..730ce25222a57e58becc379cd3d0e30752d1ca78 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# Bulk manipulation of the overrides
+""" 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
 ################################################################################
 
 # On 30 Nov 1998, James Troup wrote:
-# 
+#
 # > James Troup<2> <troup2@debian.org>
-# > 
+# >
 # >    James is a clone of James; he's going to take over the world.
 # >    After he gets some sleep.
-# 
+#
 # Could you clone other things too? Sheep? Llamas? Giant mutant turnips?
-# 
+#
 # Your clone will need some help to take over the world, maybe clone up an
 # army of penguins and threaten to unleash them on the world, forcing
 # governments to sway to the new James' will!
-# 
+#
 # Yes, I can envision a day when James' duplicate decides to take a horrific
 # vengance on the James that spawned him and unleashes his fury in the form
 # of thousands upon thousands of chickens that look just like Captin Blue
 # Eye! Oh the horror.
-# 
+#
 # Now you'll have to were name tags to people can tell you apart, unless of
 # course the new clone is truely evil in which case he should be easy to
 # identify!
-# 
+#
 # Jason
 # Chicken. Black. Helicopters.
 # Be afraid.
 ################################################################################
 
 import pg, sys, time
-import utils, database, logging
 import apt_pkg
+from daklib import utils
+from daklib import database
+from daklib import logging
+from daklib.regexes import re_comments
 
 ################################################################################
 
@@ -116,7 +119,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 = re_comments.sub('', line).strip()
         if line == "":
             continue
 
@@ -164,7 +167,7 @@ def process_file (file, suite, component, type, action):
             if action == "add" or old_priority_id == priority_id and \
                old_section_id == section_id and \
                ((old_maintainer_override == maintainer_override) or \
-               (old_maintainer_override == "" and maintainer_override == None)):
+                (old_maintainer_override == "" and maintainer_override == None)):
                 # If it's unchanged or we're in 'add only' mode, ignore it
                 c_skipped += 1
                 continue
@@ -212,7 +215,7 @@ def process_file (file, suite, component, type, action):
 
 ################################################################################
 
-def list(suite, component, type):
+def list_overrides(suite, component, type):
     suite_id = database.get_suite_id(suite)
     if suite_id == -1:
         utils.fubar("Suite '%s' not recognised." % (suite))
@@ -251,14 +254,14 @@ def main ():
 
     # Default arguments
     for i in [ "add", "help", "list", "quiet", "set" ]:
-       if not Cnf.has_key("Control-Overrides::Options::%s" % (i)):
-           Cnf["Control-Overrides::Options::%s" % (i)] = ""
+        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"
+        Cnf["Control-Overrides::Options::Component"] = "main"
     if not Cnf.has_key("Control-Overrides::Options::Suite"):
-       Cnf["Control-Overrides::Options::Suite"] = "unstable"
+        Cnf["Control-Overrides::Options::Suite"] = "unstable"
     if not Cnf.has_key("Control-Overrides::Options::Type"):
-       Cnf["Control-Overrides::Options::Type"] = "deb"
+        Cnf["Control-Overrides::Options::Type"] = "deb"
 
     file_list = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
 
@@ -275,23 +278,25 @@ def main ():
                 utils.fubar("Can not perform more than one action at once.")
             action = i
 
-    (suite, component, type) = (Cnf["Control-Overrides::Options::Suite"],
-                                Cnf["Control-Overrides::Options::Component"],
-                                Cnf["Control-Overrides::Options::Type"])
+    (suite, component, otype) = (Cnf["Control-Overrides::Options::Suite"],
+                                 Cnf["Control-Overrides::Options::Component"],
+                                 Cnf["Control-Overrides::Options::Type"])
 
     if action == "list":
-        list(suite, component, type)
+        list_overrides(suite, component, otype)
     else:
+        if Cnf.has_key("Suite::%s::Untouchable" % suite) and Cnf["Suite::%s::Untouchable" % suite] != 0:
+            utils.fubar("%s: suite is untouchable" % suite)
+
         Logger = logging.Logger(Cnf, "control-overrides")
         if file_list:
-            for file in file_list:
-                process_file(utils.open_file(file), suite, component, type, action)
+            for f in file_list:
+                process_file(utils.open_file(f), suite, component, otype, action)
         else:
-            process_file(sys.stdin, suite, component, type, action)
+            process_file(sys.stdin, suite, component, otype, action)
         Logger.close()
 
 #######################################################################################
 
 if __name__ == '__main__':
     main()
-