From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QOdMp-0002xN-EI for garchives@archives.gentoo.org; Mon, 23 May 2011 22:12:51 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7A6ED1C1AF; Mon, 23 May 2011 22:12:42 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 386F11C1AF for ; Mon, 23 May 2011 22:12:42 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B43751BC002 for ; Mon, 23 May 2011 22:12:41 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 0E54380505 for ; Mon, 23 May 2011 22:12:41 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <716f374e32a8a1f7e12b851dc0c0a91eaaa46a13.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/PackageUninstall.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 716f374e32a8a1f7e12b851dc0c0a91eaaa46a13 Date: Mon, 23 May 2011 22:12:41 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: df7d4d37df4563dfb1bb92720e17b286 commit: 716f374e32a8a1f7e12b851dc0c0a91eaaa46a13 Author: Zac Medico gentoo org> AuthorDate: Mon May 23 22:12:24 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Mon May 23 22:12:24 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D716f374e PackageUninstall: use _unmerge_display() This is preparation for asynchronous support. --- pym/_emerge/PackageUninstall.py | 51 ++++++++++++++++++++++++++-------= ------ 1 files changed, 34 insertions(+), 17 deletions(-) diff --git a/pym/_emerge/PackageUninstall.py b/pym/_emerge/PackageUninsta= ll.py index 5e8850b..0e91307 100644 --- a/pym/_emerge/PackageUninstall.py +++ b/pym/_emerge/PackageUninstall.py @@ -1,34 +1,51 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 =20 import logging import portage from portage import os -from _emerge.AsynchronousTask import AsynchronousTask -from _emerge.unmerge import unmerge -from _emerge.UninstallFailure import UninstallFailure +from _emerge.emergelog import emergelog +from _emerge.CompositeTask import CompositeTask +from _emerge.unmerge import _unmerge_display =20 -class PackageUninstall(AsynchronousTask): +class PackageUninstall(CompositeTask): =20 __slots__ =3D ("world_atom", "ldpath_mtimes", "opts", - "pkg", "scheduler", "settings") + "pkg", "settings") =20 def _start(self): - try: - retval =3D unmerge(self.pkg.root_config, self.opts, "unmerge", - [self.pkg.cpv], self.ldpath_mtimes, clean_world=3D0, - clean_delay=3D0, raise_on_error=3D1, scheduler=3Dself.scheduler, - writemsg_level=3Dself._writemsg_level) - except UninstallFailure as e: - self.returncode =3D e.status - else: - self.returncode =3D os.EX_OK =20 - if retval =3D=3D 1: - self.world_atom(self.pkg) + retval, pkgmap =3D _unmerge_display(self.pkg.root_config, + self.opts, "unmerge", [self.pkg.cpv], clean_delay=3D0, + writemsg_level=3Dself._writemsg_level) + + if retval !=3D os.EX_OK: + self.returncode =3D retval + self.wait() + return + + self._writemsg_level(">>> Unmerging %s...\n" % (self.pkg.cpv,), + noiselevel=3D-1) + self._emergelog("=3D=3D=3D Unmerging... (%s)" % (self.pkg.cpv,)) + + cat, pf =3D portage.catsplit(self.pkg.cpv) + retval =3D portage.unmerge(cat, pf, settings=3Dself.settings, + vartree=3Dself.pkg.root_config.trees["vartree"], + ldpath_mtimes=3Dself.ldpath_mtimes, + scheduler=3Dself.scheduler) =20 + if retval !=3D os.EX_OK: + self._emergelog(" !!! unmerge FAILURE: %s" % (self.pkg.cpv,)) + else: + self._emergelog(" >>> unmerge success: %s" % (self.pkg.cpv,)) + self.world_atom(self.pkg) + + self.returncode =3D retval self.wait() =20 + def _emergelog(self, msg): + emergelog("notitles" not in self.settings.features, msg) + def _writemsg_level(self, msg, level=3D0, noiselevel=3D0): =20 log_path =3D self.settings.get("PORTAGE_LOG_FILE")