| # Copyright 1999-2009 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| from _emerge.SlotObject import SlotObject |
| import portage |
| from portage import os |
| |
| class EbuildMerge(SlotObject): |
| |
| __slots__ = ("find_blockers", "logger", "ldpath_mtimes", |
| "pkg", "pkg_count", "pkg_path", "pretend", |
| "scheduler", "settings", "tree", "world_atom") |
| |
| def execute(self): |
| root_config = self.pkg.root_config |
| settings = self.settings |
| retval = portage.merge(settings["CATEGORY"], |
| settings["PF"], settings["D"], |
| os.path.join(settings["PORTAGE_BUILDDIR"], |
| "build-info"), root_config.root, settings, |
| myebuild=settings["EBUILD"], |
| mytree=self.tree, mydbapi=root_config.trees[self.tree].dbapi, |
| vartree=root_config.trees["vartree"], |
| prev_mtimes=self.ldpath_mtimes, |
| scheduler=self.scheduler, |
| blockers=self.find_blockers) |
| |
| if retval == os.EX_OK: |
| self.world_atom(self.pkg) |
| self._log_success() |
| |
| return retval |
| |
| def _log_success(self): |
| pkg = self.pkg |
| pkg_count = self.pkg_count |
| pkg_path = self.pkg_path |
| logger = self.logger |
| if "noclean" not in self.settings.features: |
| short_msg = "emerge: (%s of %s) %s Clean Post" % \ |
| (pkg_count.curval, pkg_count.maxval, pkg.cpv) |
| logger.log((" === (%s of %s) " + \ |
| "Post-Build Cleaning (%s::%s)") % \ |
| (pkg_count.curval, pkg_count.maxval, pkg.cpv, pkg_path), |
| short_msg=short_msg) |
| logger.log(" ::: completed emerge (%s of %s) %s to %s" % \ |
| (pkg_count.curval, pkg_count.maxval, pkg.cpv, pkg.root)) |
| |