From 7ade54a7e52ecf5a36cbb9d8d7a4e392a02348c0 Mon Sep 17 00:00:00 2001 From: Mike khiretskiy Date: Fri, 30 May 2014 17:47:17 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=20=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D1=85=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=20=D1=81=20--verbose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update/emerge_parser.py | 18 +++++++++++++----- update/update.py | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/update/emerge_parser.py b/update/emerge_parser.py index b3a8c96..d18f36d 100644 --- a/update/emerge_parser.py +++ b/update/emerge_parser.py @@ -219,16 +219,24 @@ class UninstallPackagesBlock(EmergeInformationBlock): Блок emerge содержащий список удаляемых пакетов """ list = PackageList([]) + verbose_result = "" _new_line = EmergeInformationBlock._new_line _color_block = EmergeInformationBlock._color_block - token = ["These are the packages that would be unmerged", - "Calculating removal order"] + token = ["Calculating removal order", + "These are the packages that would be unmerged",] end_token = re.compile("All selected packages:.*\n") - re_block = re.compile(r"All selected packages: (.*?){nl}". - format(nl=_new_line, c=_color_block), re.DOTALL) + re_block = re.compile( + r"(?:{token}).*?{nl}(.*){nl}All selected packages: (.*?){nl}". + format(token="|".join(token), + nl=_new_line, c=_color_block), re.DOTALL) def get_data(self, match): - super(UninstallPackagesBlock, self).get_data(match) + re_clean = re.compile( + "^.*?({token}).*?{c}{nl}".format(token="|".join(self.token), + nl=self._new_line,c=self._color_block),re.DOTALL) + verbose_result = re_clean.sub("", match.group(1)) + self.verbose_result = self._get_text(verbose_result) + self.result = self._get_text(match.group(2)) list_block = XmlConverter().transform(self.result).split() self.list = PackageList(map(EmergePackage, list_block)) diff --git a/update/update.py b/update/update.py index 2f28776..03a9eef 100644 --- a/update/update.py +++ b/update/update.py @@ -428,7 +428,8 @@ class Update: """ # подробный список пакетов if self.clVars.Get('cl_verbose_set') == 'on': - self.printPre(str(emerge.uninstall_packages)) + self.printPre(self._emerge_translate( + emerge.uninstall_packages.verbose_result)) else: _print = self.color_print pkglist = emerge.uninstall_packages.list