Mercurial > hg > PaInt
diff paint/package.py @ 8:c1181e9c9ca2
yet more stubbing
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 23 Feb 2012 17:45:47 -0800 |
parents | a7bf894c96c7 |
children | 562230cc2e86 |
line wrap: on
line diff
--- a/paint/package.py Thu Feb 23 17:41:54 2012 -0800 +++ b/paint/package.py Thu Feb 23 17:45:47 2012 -0800 @@ -26,19 +26,21 @@ tmpfile = None src = self.src if utils.isURL(self.src): - tmpfile = self.fetch() - return self._tmppath + tmpfile = src = self.fetch() # unpack if an archive if self.is_archive(src): - self.unpack(src) + try: + self.unpack(src) + finally: + if tmpfile: + os.remove(tmpfile) return self._tmppath return self.src def fetch(self): - """fetch from remote source""" - + """fetch from remote source to a temporary file""" fd, filename = tmpfile.mkstemp() resource = urllib.urlopen(self.src) os.write(fd, resource.read()) @@ -49,8 +51,8 @@ """unpack the archive to a temporary destination""" # TODO: should handle zipfile additionally at least # Ideally, this would be pluggable, etc - assert tarfile.is_tarfile - tarfile.TarFile.open( + assert tarfile.is_tarfile(archive), "%s is not an archive" % self.src + tarfile.TarFile.open(archive) def is_archive(self, path): """returns if the filesystem path is an archive"""