From 6898735370872391ea2beb19d7366070f207d170 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 7 Mar 2008 23:52:35 +0000 Subject: Convert PackageIndex.packages from a dict to a list so that in the future it will be possible to support multiple packages with the same cpv. svn path=/main/trunk/; revision=9452 --- bin/emaint | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'bin') diff --git a/bin/emaint b/bin/emaint index 8464d1317..e0baa138a 100755 --- a/bin/emaint +++ b/bin/emaint @@ -129,14 +129,17 @@ class BinhostHandler(object): onProgress(maxval, 0) pkgindex = self._pkgindex missing = [] + metadata = {} + for d in pkgindex.packages: + metadata[d["CPV"]] = d for i, cpv in enumerate(cpv_all): - d = pkgindex.packages.get(cpv) + d = metadata.get(cpv) if not d or "MD5" not in d: missing.append(cpv) if onProgress: onProgress(maxval, i+1) errors = ["'%s' is not in Packages" % cpv for cpv in missing] - stale = set(pkgindex.packages).difference(cpv_all) + stale = set(metadata).difference(cpv_all) for cpv in stale: errors.append("'%s' is not in the repository" % cpv) return errors @@ -151,13 +154,16 @@ class BinhostHandler(object): onProgress(maxval, 0) pkgindex = self._pkgindex missing = [] + metadata = {} + for d in pkgindex.packages: + metadata[d["CPV"]] = d for i, cpv in enumerate(cpv_all): - d = pkgindex.packages.get(cpv) + d = metadata.get(cpv) if not d or "MD5" not in d: bintree.inject(cpv) if onProgress: onProgress(maxval, i+1) - stale = set(pkgindex.packages).difference(cpv_all) + stale = set(metadata).difference(cpv_all) if stale: from portage import locks pkgindex_lock = locks.lockfile( @@ -177,9 +183,11 @@ class BinhostHandler(object): del bintree portage.db[self._bintree.root]["bintree"] = self._bintree self._bintree._populate() - for cpv in set(self._pkgindex.packages).difference( + for cpv in set(metadata).difference( self._bintree.dbapi.cpv_all()): - del self._pkgindex.packages[cpv] + del metadata[cpv] + del pkgindex.packages[:] + pkgindex.packages.extend(metadata.itervalues()) from portage.util import atomic_ofstream f = atomic_ofstream(self._pkgindex_file) try: -- cgit v1.2.3-1-g7c22