summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfeed/sse_tar.py21
1 files changed, 6 insertions, 15 deletions
diff --git a/feed/sse_tar.py b/feed/sse_tar.py
index b3d86e6..8a1a492 100755
--- a/feed/sse_tar.py
+++ b/feed/sse_tar.py
@@ -96,23 +96,14 @@ def uncompress_zip(archive, root, package_id, meta = {}):
def uncompress_archive(archive, root, package_id, meta = {}):
n = -1
-
- try:
- n = uncompress_tar(archive, root, package_id, meta)
- except tarfile.TarError:
+
+ try:
try:
+ n = uncompress_tar(archive, root, package_id, meta)
+ except tarfile.TarError:
n = uncompress_zip(archive, root, package_id, meta)
- except zipfile.error:
- print "WARNING: Unknown file format."
- except IOError:
- print "WARNING: Broken archive."
- except IOError, e:
- if e[0] == "CRC check failed":
- print "WARNING: Broken archive."
- else:
- raise e
- except zlib.error:
- print "WARNING: Broken archive."
+ except (zipfile.error, zlib.error, EOFError, IOError), e:
+ print "WARNING: Broken archive: %s" % e
return n