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
This commit is contained in:
Ozan Çağlayan
2009-10-15 18:46:00 +00:00
parent a0e7aa9220
commit cda3d7586c
+13 -7
View File
@@ -12,11 +12,12 @@
import sys import sys
import os import os
import shutil
import tempfile
from zipfile import BadZipfile from zipfile import BadZipfile
import pisi import pisi
from pisi.archive import ArchiveZip, ArchiveTar from pisi.archive import ArchiveZip, ArchiveTar
import pisi.context as ctx
import pisi.util as util import pisi.util as util
def usage(errmsg): def usage(errmsg):
@@ -24,7 +25,7 @@ def usage(errmsg):
Error: %s Error: %s
Usage: Usage:
unpisi PiSi_package.PiSi unpisi PiSi_package.pisi
""" % (errmsg) """ % (errmsg)
sys.exit(1) sys.exit(1)
@@ -43,15 +44,20 @@ def main():
print e print e
sys.exit(1) sys.exit(1)
# Create a temporary directory in /tmp
tempdir = tempfile.mkdtemp(prefix='unpisi')
arc.unpack_files(['files.xml', 'metadata.xml'], '.') 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', '.') arc.unpack_dir('comar', '.')
tar_file = util.join_path(ctx.config.tmp_dir(), "install.tar.lzma") tar_file = util.join_path(tempdir, "install.tar.lzma")
tar = ArchiveTar(tar_file, 'tarlzma') if os.path.exists(tar_file):
tar.unpack_dir('.') tar = ArchiveTar(tar_file, 'tarlzma')
tar.unpack_dir('.')
os.unlink(tar_file)
os.unlink(tar_file) shutil.rmtree(tempdir)
return 0 return 0
if __name__ == "__main__": if __name__ == "__main__":