From cda3d7586ce07a9cf22984eccff3b743d341473c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20=C3=87a=C4=9Flayan?= Date: Thu, 15 Oct 2009 18:46:00 +0000 Subject: [PATCH] Use tempdir to unpack install.tar.lzma under /tmp instead of polluting /var/pisi Don't fail while unpisiing delta packages without install.tar.lzma --- scripts/unpisi | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/scripts/unpisi b/scripts/unpisi index bf5e9c3e..8c11ad5e 100755 --- a/scripts/unpisi +++ b/scripts/unpisi @@ -12,19 +12,20 @@ import sys import os +import shutil +import tempfile from zipfile import BadZipfile import pisi from pisi.archive import ArchiveZip, ArchiveTar -import pisi.context as ctx import pisi.util as util def usage(errmsg): print """ Error: %s - + Usage: - unpisi PiSi_package.PiSi + unpisi PiSi_package.pisi """ % (errmsg) sys.exit(1) @@ -43,15 +44,20 @@ def main(): print e sys.exit(1) + # Create a temporary directory in /tmp + tempdir = tempfile.mkdtemp(prefix='unpisi') + arc.unpack_files(['files.xml', 'metadata.xml'], '.') - arc.unpack_files("install.tar.lzma", ctx.config.tmp_dir()) + arc.unpack_files("install.tar.lzma", tempdir) arc.unpack_dir('comar', '.') - tar_file = util.join_path(ctx.config.tmp_dir(), "install.tar.lzma") - tar = ArchiveTar(tar_file, 'tarlzma') - tar.unpack_dir('.') + tar_file = util.join_path(tempdir, "install.tar.lzma") + if os.path.exists(tar_file): + tar = ArchiveTar(tar_file, 'tarlzma') + tar.unpack_dir('.') + os.unlink(tar_file) - os.unlink(tar_file) + shutil.rmtree(tempdir) return 0 if __name__ == "__main__":