summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-11-26 03:01:51 +0000
committerLennart Poettering <lennart@poettering.net>2005-11-26 03:01:51 +0000
commit8b82b54ea066ac88fbcdb65d5d69e7bbba3c397f (patch)
tree59e943890d331b4d8ac238d981b45cad6b6f3f9b
parenta3c6c405a297ddc933282806adbdf345b3b8e646 (diff)
handle EOFErrors when untarring
git-svn-id: file:///home/lennart/svn/public/sse/trunk@68 5fbabb74-0606-0410-a5e4-b5cc6a42724e
-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