#!/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
################################################################################
-import os, pg, stat, string, sys
-import utils, db_access
+import os, pg, stat, sys;
+import utils, db_access;
import apt_pkg, apt_inst;
################################################################################
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
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));
# 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:
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")