]> git.decadent.org.uk Git - dak.git/blobdiff - catherine
* katie.py (source_exists): expand the list of distributionsthe source may exist...
[dak.git] / catherine
index 70996a9f37690c703acd4290f9667ce441fcbb44..722f4e820ad116b045055a37ed2affb7c233a3b2 100755 (executable)
--- a/catherine
+++ b/catherine
@@ -1,8 +1,8 @@
 #!/usr/bin/env python
 
 # Poolify (move packages from "legacy" type locations to pool locations)
-# Copyright (C) 2000, 2001  James Troup <james@nocrew.org>
-# $Id: catherine,v 1.11 2001-09-27 01:22:51 troup Exp $
+# Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
+# $Id: catherine,v 1.17 2002-10-16 02:47:32 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
@@ -24,8 +24,8 @@
 
 ################################################################################
 
-import os, pg, stat, string, sys
-import utils, db_access
+import os, pg, stat, sys;
+import utils, db_access;
 import apt_pkg, apt_inst;
 
 ################################################################################
@@ -70,16 +70,16 @@ def poolize (q, limit, verbose, no_action):
         if (poolized_size + size) > limit and limit >= 0:
             utils.warn("Hit %s limit." % (utils.size_type(limit)));
             break;
-        poolized_size = poolized_size + size;
-        poolized_count = poolized_count + 1;
+        poolized_size += size;
+        poolized_count += 1;
         base_filename = os.path.basename(legacy_filename);
         destination_filename = base_filename;
         # Work out the source package name
         if utils.re_isadeb.match(base_filename) != None:
-            control = apt_pkg.ParseSection(apt_inst.debExtractControl(utils.open_file(legacy_filename,"r")))
+            control = apt_pkg.ParseSection(apt_inst.debExtractControl(utils.open_file(legacy_filename)))
             package = control.Find("Package", "");
             source = control.Find("Source", package);
-            if string.find(source, "(") != -1:
+            if source.find("(") != -1:
                 m = utils.re_extract_src_version.match(source)
                 source = m.group(1)
             # If it's a binary, we need to also rename the file to include the architecture
@@ -94,13 +94,13 @@ def poolize (q, limit, verbose, no_action):
             if m != None:
                 source = m.group(1);
             else:
-                utils.fubar("expandsion of source filename '%s' failed." % (legacy_filename));
+                utils.fubar("expansion of source filename '%s' failed." % (legacy_filename));
         # Work out the component name
         component = qid["component"];
         if component == "":
             q = projectB.query("SELECT DISTINCT(c.name) FROM override o, component c WHERE o.package = '%s' AND o.component = c.id;" % (source));
             ql = q.getresult();
-            if ql == []:
+            if not ql:
                 utils.fubar("No override match for '%s' so I can't work out the component." % (source));
             if len(ql) > 1:
                 utils.fubar("Multiple override matches for '%s' so I can't work out the component." % (source));
@@ -114,7 +114,7 @@ def poolize (q, limit, verbose, no_action):
         # First move the files to the new location
         pool_location = utils.poolify (source, component);
         pool_filename = pool_location + destination_filename;
-        destination = Cnf["Dir::PoolDir"] + pool_location + destination_filename;
+        destination = Cnf["Dir::Pool"] + pool_location + destination_filename;
         if os.path.exists(destination):
             utils.fubar("'%s' already exists in the pool; serious FUBARity." % (legacy_filename));
         if verbose:
@@ -134,17 +134,17 @@ def poolize (q, limit, verbose, no_action):
 def main ():
     global Cnf, projectB;
 
-    apt_pkg.init();
+    Cnf = utils.get_conf()
+
+    for i in ["help", "limit", "no-action", "verbose" ]:
+       if not Cnf.has_key("Catherine::Options::%s" % (i)):
+           Cnf["Catherine::Options::%s" % (i)] = "";
 
-    Cnf = apt_pkg.newConfiguration();
-    apt_pkg.ReadConfigFileISC(Cnf,utils.which_conf_file());
 
     Arguments = [('h',"help","Catherine::Options::Help"),
                  ('l',"limit", "Catherine::Options::Limit", "HasArg"),
                  ('n',"no-action","Catherine::Options::No-Action"),
                  ('v',"verbose","Catherine::Options::Verbose")];
-    for i in ["help", "limit", "no-action", "verose" ]:
-        Cnf["Catherine::Options::%s" % (i)] = "";
 
     apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv);
     Options = Cnf.SubTree("Catherine::Options")