OLD | NEW |
1 # Copyright 1999-2009 Gentoo Foundation | 1 # Copyright 1999-2009 Gentoo Foundation |
2 # Distributed under the terms of the GNU General Public License v2 | 2 # Distributed under the terms of the GNU General Public License v2 |
3 | 3 |
4 from _emerge.SlotObject import SlotObject | 4 from _emerge.SlotObject import SlotObject |
5 import portage | 5 import portage |
6 from portage import os | 6 from portage import os |
| 7 from portage.dbapi._MergeProcess import MergeProcess |
| 8 from portage.dbapi.vartree import dblink |
7 | 9 |
8 class EbuildMerge(SlotObject): | 10 class EbuildMerge(SlotObject): |
9 | 11 |
10 __slots__ = ("find_blockers", "logger", "ldpath_mtimes", | 12 __slots__ = ("find_blockers", "logger", "ldpath_mtimes", |
11 "pkg", "pkg_count", "pkg_path", "pretend", | 13 "pkg", "pkg_count", "pkg_path", "pretend", |
12 "scheduler", "settings", "tree", "world_atom") | 14 "scheduler", "settings", "tree", "world_atom") |
13 | 15 |
14 » def execute(self): | 16 » def create_task(self): |
15 root_config = self.pkg.root_config | 17 root_config = self.pkg.root_config |
16 settings = self.settings | 18 settings = self.settings |
17 » » retval = portage.merge(settings["CATEGORY"], | 19 » » mycat = settings["CATEGORY"] |
18 » » » settings["PF"], settings["D"], | 20 » » mypkg = settings["PF"] |
19 » » » os.path.join(settings["PORTAGE_BUILDDIR"], | 21 » » pkgloc = settings["D"] |
20 » » » "build-info"), root_config.root, settings, | 22 » » infloc = os.path.join(settings["PORTAGE_BUILDDIR"], "build-info"
) |
21 » » » myebuild=settings["EBUILD"], | 23 » » myroot = root_config.root |
22 » » » mytree=self.tree, mydbapi=root_config.trees[self.tree].d
bapi, | 24 » » myebuild = settings["EBUILD"] |
23 » » » vartree=root_config.trees["vartree"], | 25 » » mydbapi = root_config.trees[self.tree].dbapi |
24 » » » prev_mtimes=self.ldpath_mtimes, | 26 » » vartree = root_config.trees["vartree"] |
25 » » » scheduler=self.scheduler, | 27 » » background = (settings.get('PORTAGE_BACKGROUND') == '1') |
26 » » » blockers=self.find_blockers) | 28 » » logfile = settings.get('PORTAGE_LOG_FILE') |
27 | 29 |
28 » » if retval == os.EX_OK: | 30 » » merge_task = MergeProcess( |
29 » » » self.world_atom(self.pkg) | 31 » » » dblink=dblink, mycat=mycat, mypkg=mypkg, settings=settin
gs, |
30 » » » self._log_success() | 32 » » » treetype=self.tree, vartree=vartree, scheduler=self.sche
duler, |
| 33 » » » background=background, blockers=self.find_blockers, pkgl
oc=pkgloc, |
| 34 » » » infloc=infloc, myebuild=myebuild, mydbapi=mydbapi, |
| 35 » » » prev_mtimes=self.ldpath_mtimes, logfile=logfile) |
| 36 » » merge_task.addExitListener(self._log_exit) |
| 37 » » return merge_task |
31 | 38 |
32 » » return retval | 39 » def _log_exit(self, task): |
| 40 » » if task.returncode != os.EX_OK: |
| 41 » » » return |
33 | 42 |
34 def _log_success(self): | |
35 pkg = self.pkg | 43 pkg = self.pkg |
| 44 self.world_atom(pkg) |
36 pkg_count = self.pkg_count | 45 pkg_count = self.pkg_count |
37 pkg_path = self.pkg_path | 46 pkg_path = self.pkg_path |
38 logger = self.logger | 47 logger = self.logger |
39 if "noclean" not in self.settings.features: | 48 if "noclean" not in self.settings.features: |
40 short_msg = "emerge: (%s of %s) %s Clean Post" % \ | 49 short_msg = "emerge: (%s of %s) %s Clean Post" % \ |
41 (pkg_count.curval, pkg_count.maxval, pkg.cpv) | 50 (pkg_count.curval, pkg_count.maxval, pkg.cpv) |
42 logger.log((" === (%s of %s) " + \ | 51 logger.log((" === (%s of %s) " + \ |
43 "Post-Build Cleaning (%s::%s)") % \ | 52 "Post-Build Cleaning (%s::%s)") % \ |
44 (pkg_count.curval, pkg_count.maxval, pkg.cpv, pk
g_path), | 53 (pkg_count.curval, pkg_count.maxval, pkg.cpv, pk
g_path), |
45 short_msg=short_msg) | 54 short_msg=short_msg) |
46 logger.log(" ::: completed emerge (%s of %s) %s to %s" % \ | 55 logger.log(" ::: completed emerge (%s of %s) %s to %s" % \ |
47 (pkg_count.curval, pkg_count.maxval, pkg.cpv, pkg.root)) | 56 (pkg_count.curval, pkg_count.maxval, pkg.cpv, pkg.root)) |
48 | 57 |
OLD | NEW |