summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-04-30 06:57:04 +0000
committerZac Medico <zmedico@gentoo.org>2009-04-30 06:57:04 +0000
commit775e1a31728f96bbbf13719201b7911d212863fe (patch)
tree6afd39dfd4407ca4677ada0e1b5ed232fa8f026b /bin
parentInside tar_contents(), don't emulate tar --numeric-id option. The uid/gid (diff)
downloadportage-multirepo-775e1a31728f96bbbf13719201b7911d212863fe.tar.gz
portage-multirepo-775e1a31728f96bbbf13719201b7911d212863fe.tar.bz2
portage-multirepo-775e1a31728f96bbbf13719201b7911d212863fe.zip
Generate an error if there are no ebuilds found for a package that's
specified on the commandline. (trunk r13282) svn path=/main/branches/2.1.6/; revision=13457
Diffstat (limited to 'bin')
-rwxr-xr-xbin/egencache10
1 files changed, 10 insertions, 0 deletions
diff --git a/bin/egencache b/bin/egencache
index 66af2a75..923bd166 100755
--- a/bin/egencache
+++ b/bin/egencache
@@ -116,8 +116,10 @@ class GenCache(object):
if cp_iter is not None:
self._cp_set = set(cp_iter)
cp_iter = iter(self._cp_set)
+ self._cp_missing = self._cp_set.copy()
else:
self._cp_set = None
+ self._cp_missing = set()
self._regen = _emerge.MetadataRegen(portdb, cp_iter=cp_iter,
consumer=self._metadata_callback,
max_jobs=max_jobs, max_load=max_load)
@@ -131,6 +133,7 @@ class GenCache(object):
def _metadata_callback(self, cpv, ebuild_path, repo_path, metadata):
self._existing_nodes.add(cpv)
+ self._cp_missing.discard(portage.cpv_getkey(cpv))
if metadata is not None:
if metadata.get('EAPI') == '0':
del metadata['EAPI']
@@ -174,6 +177,13 @@ class GenCache(object):
self._regen.run()
self.returncode |= self._regen.returncode
+ if self._cp_missing:
+ self.returncode |= 1
+ for cp in sorted(self._cp_missing):
+ writemsg_level(
+ "No ebuilds found for '%s'\n" % (cp,),
+ level=logging.ERROR, noiselevel=-1)
+
trg_cache = self._trg_cache
dead_nodes = None
if self._global_cleanse: