Mercurial > hg > PaInt
comparison paint/package.py @ 9:562230cc2e86
now the package class should at least extracts things. it doesnt actually do anything useful
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Thu, 23 Feb 2012 17:49:05 -0800 |
| parents | c1181e9c9ca2 |
| children | d63ae03cc300 |
comparison
equal
deleted
inserted
replaced
| 8:c1181e9c9ca2 | 9:562230cc2e86 |
|---|---|
| 1 """ | 1 """ |
| 2 package model for python PAckage INTrospection | 2 package model for python PAckage INTrospection |
| 3 """ | 3 """ |
| 4 | 4 |
| 5 import os | 5 import os |
| 6 import shutil | |
| 6 import tarfile | 7 import tarfile |
| 7 import tempfile | 8 import tempfile |
| 8 import urllib2 | 9 import urllib2 |
| 9 import utils | 10 import utils |
| 10 | 11 |
| 50 def unpack(self, archive): | 51 def unpack(self, archive): |
| 51 """unpack the archive to a temporary destination""" | 52 """unpack the archive to a temporary destination""" |
| 52 # TODO: should handle zipfile additionally at least | 53 # TODO: should handle zipfile additionally at least |
| 53 # Ideally, this would be pluggable, etc | 54 # Ideally, this would be pluggable, etc |
| 54 assert tarfile.is_tarfile(archive), "%s is not an archive" % self.src | 55 assert tarfile.is_tarfile(archive), "%s is not an archive" % self.src |
| 55 tarfile.TarFile.open(archive) | 56 tf = tarfile.TarFile.open(archive) |
| 57 self._tmppath = tempfile.mkdtemp() | |
| 58 tf.extractall(path=self._tmppath) | |
| 56 | 59 |
| 57 def is_archive(self, path): | 60 def is_archive(self, path): |
| 58 """returns if the filesystem path is an archive""" | 61 """returns if the filesystem path is an archive""" |
| 59 # TODO: should handle zipfile additionally at least | 62 # TODO: should handle zipfile additionally at least |
| 60 # Ideally, this would be pluggable, etc | 63 # Ideally, this would be pluggable, etc |
| 61 return tarfile.is_tarfile(path) | 64 return tarfile.is_tarfile(path) |
| 65 | |
| 66 def cleanup(self): | |
| 67 if self._tmppath: | |
| 68 shutil.rmtree(self._tmppath) | |
| 69 self._tmppath = None | |
| 70 | |
| 71 __del__ = cleanup |
