From 589acd81724ec639b48524d62f0d9616efbb76d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Mon, 13 Jun 2005 13:23:02 +0000 Subject: [PATCH] =?UTF-8?q?archive'leri=20nas=C4=B1l=20unpack()=20edece?= =?UTF-8?q?=C4=9Fimizi=20bir=20=C3=B6rnek=20ile=20g=C3=B6sterdik...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pisi/archive.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/pisi/archive.py b/src/pisi/archive.py index 285a1dce..3bd94a25 100644 --- a/src/pisi/archive.py +++ b/src/pisi/archive.py @@ -1,23 +1,25 @@ # utilities to extract and build archives of zip, tar, targz, tarbz2 # maintainer: baris and meren +import tarfile + import config -class ArchiveTarGZ: - def __init__(self, filename): - print "testing...%s" %filename +class ArchiveTarFile: + def __init__(self, filename, type): + self.type = type + self.filename = filename def unpack(self): - print "unpack is cool" - -class ArchiveTarBZ2: - pass + if self.type == "targz": + tar = tarfile.open(config.archives_dir()+"/"+self.filename, 'r:gz') + for tarinfo in tar: + tar.extract(tarinfo) + tar.close() class ArchiveZip: pass -class ArchiveTar: - pass class Archive: """Unpack magic for Archive files...""" @@ -27,13 +29,13 @@ class Archive: targz, tarbz2, zip, tar""" actions = { - 'targz': ArchiveTarGZ, - 'tarbz2': ArchiveTarBZ2, - 'zip': ArchiveZip, - 'tar': ArchiveTar + 'targz': ArchiveTarFile, + 'tarbz2': ArchiveTarFile, + 'tar': ArchiveTarFile, + 'zip': ArchiveZip } - self.archive = actions.get(type)(filename) + self.archive = actions.get(type)(filename, type) def unpack(self): self.archive.unpack()