From 7bb4329c5ce7ad95b4db35a6ca72e536ce1bf8f6 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Thu, 18 Jun 2009 07:24:41 +0000 Subject: [PATCH] Catch BadZipfile and raise with the corrupted file's name --- pisi/atomicoperations.py | 8 ++++++-- pisi/operations/install.py | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pisi/atomicoperations.py b/pisi/atomicoperations.py index c66b84aa..06e82bee 100644 --- a/pisi/atomicoperations.py +++ b/pisi/atomicoperations.py @@ -17,6 +17,7 @@ _ = __trans.ugettext import os import shutil +import zipfile import pisi import pisi.context as ctx @@ -123,8 +124,11 @@ class Install(AtomicOperation): ignore_file_conflicts = ctx.get_option('ignore_file_conflicts') self.ignore_file_conflicts = ignore_file_conflicts self.package_fname = package_fname - self.package = pisi.package.Package(package_fname) - self.package.read() + try: + self.package = pisi.package.Package(package_fname) + self.package.read() + except zipfile.BadZipfile: + raise zipfile.BadZipfile(self.package_fname) self.metadata = self.package.metadata self.files = self.package.files self.pkginfo = self.metadata.package diff --git a/pisi/operations/install.py b/pisi/operations/install.py index 70aecb24..de2c6b19 100644 --- a/pisi/operations/install.py +++ b/pisi/operations/install.py @@ -12,6 +12,7 @@ import os import sys +import zipfile import gettext __trans = gettext.translation('pisi', fallback=True) @@ -145,8 +146,8 @@ def install_pkg_files(package_URIs, reinstall = False): d_t = {} dfn = {} for x in package_URIs: - package = pisi.package.Package(x) try: + package = pisi.package.Package(x) package.read() except zipfile.BadZipfile: # YALI needed to get which file is broken