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:
+14
-8
@@ -12,19 +12,20 @@
|
|||||||
|
|
||||||
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):
|
||||||
print """
|
print """
|
||||||
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__":
|
||||||
|
|||||||
Reference in New Issue
Block a user