Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolkit/tarball.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/tarball.py')
-rw-r--r--toolkit/tarball.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/toolkit/tarball.py b/toolkit/tarball.py
index 0a4a1b2..30483ea 100644
--- a/toolkit/tarball.py
+++ b/toolkit/tarball.py
@@ -20,7 +20,6 @@ import os
import time
import tarfile
import cStringIO
-import gtk
import zipfile
import tempfile
import shutil
@@ -64,8 +63,10 @@ class Tarball:
"""
def __init__(self, name=None, mode='r', mtime=None):
+
if not mode.startswith('r') or tarfile.is_tarfile(name):
self.__tar = tarfile.TarFile(name=name, mode=mode)
+
else:
# convert for tar
@@ -85,6 +86,7 @@ class Tarball:
tar.close()
self.__tar = tarfile.TarFile(name=tmp_name, mode=mode)
+
finally:
tmp_fo.close()
os.unlink(tmp_name)
@@ -92,6 +94,7 @@ class Tarball:
if mtime:
self.mtime = mtime
+
else:
self.mtime = time.time()
@@ -106,8 +109,10 @@ class Tarball:
def read(self, arcname):
"""Returns sring with content of given file from tarball."""
file_o = self.__tar.extractfile(arcname.encode('utf8'))
+
if not file_o:
return None
+
out = file_o.read()
file_o.close()
return out