209 mimetypes.suffix_map.has_key(extension)): |
209 mimetypes.suffix_map.has_key(extension)): |
210 pieces.pop() |
210 pieces.pop() |
211 return '.'.join(pieces) |
211 return '.'.join(pieces) |
212 |
212 |
213 def extract(self): |
213 def extract(self): |
214 self.target = tempfile.mkdtemp(prefix='.dtrx-', dir='.') |
214 try: |
|
215 self.target = tempfile.mkdtemp(prefix='.dtrx-', dir='.') |
|
216 except (OSError, IOError), error: |
|
217 raise ExtractorError("cannot extract here: %s" % (error.strerror,)) |
215 old_path = os.path.realpath(os.curdir) |
218 old_path = os.path.realpath(os.curdir) |
216 os.chdir(self.target) |
219 os.chdir(self.target) |
217 try: |
220 try: |
218 self.archive.seek(0, 0) |
221 self.archive.seek(0, 0) |
219 self.extract_archive() |
222 self.extract_archive() |
249 yield self.basename() |
252 yield self.basename() |
250 |
253 |
251 def extract(self): |
254 def extract(self): |
252 self.content_type = ONE_ENTRY_KNOWN |
255 self.content_type = ONE_ENTRY_KNOWN |
253 self.content_name = self.basename() |
256 self.content_name = self.basename() |
254 output_fd, self.target = tempfile.mkstemp(prefix='.dtrx-', dir='.') |
257 try: |
|
258 output_fd, self.target = tempfile.mkstemp(prefix='.dtrx-', dir='.') |
|
259 except (OSError, IOError), error: |
|
260 raise ExtractorError("cannot extract here: %s" % (error.strerror,)) |
255 try: |
261 try: |
256 self.run_pipes(output_fd) |
262 self.run_pipes(output_fd) |
257 except ExtractorError: |
263 except ExtractorError: |
258 os.close(output_fd) |
264 os.close(output_fd) |
259 os.unlink(self.target) |
265 os.unlink(self.target) |