From 578664d15a43a3750b6a09220355ce2d70b1adf9 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 3 Apr 2009 01:20:00 +0000 Subject: Generate an error if there are no ebuilds found for a package that's specified on the commandline. svn path=/main/trunk/; revision=13282 --- bin/egencache | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'bin') diff --git a/bin/egencache b/bin/egencache index 66af2a75a..923bd1664 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: -- cgit v1.2.3-1-g7c22