diff --git a/scripts/unpisi b/scripts/unpisi index f460e933..64868bf2 100755 --- a/scripts/unpisi +++ b/scripts/unpisi @@ -11,9 +11,13 @@ # Please read the COPYING file. import sys +import os -from pisi.archive import ArchiveZip +import pisi +from pisi.archive import ArchiveZip, ArchiveTar from pisi.zipfileext import BadZipfile +import pisi.context as ctx +import pisi.util as util def usage(errmsg): print """ @@ -30,6 +34,8 @@ def main(): if len(sys.argv) < 2: usage("PiSi package required..") + pisi.api.init(database=False, options='') + try: arc = ArchiveZip(sys.argv[1], 'zip', 'r') except BadZipfile, e: @@ -37,9 +43,17 @@ def main(): sys.exit(1) arc.unpack_files(['files.xml', 'metadata.xml'], '.') + arc.unpack_files("install.tar.lzma", ctx.config.tmp_dir()) arc.unpack_dir_flat('comar','comar') - arc.unpack_dir_flat('install','.') - + + tar_file = util.join_path(ctx.config.tmp_dir(), "install.tar.lzma") + tar = ArchiveTar(tar_file, 'tarlzma') + tar.unpack_dir('.') + + os.unlink(tar_file) + os.unlink(tar_file.rstrip('.lzma')) + + pisi.api.finalize() return 0 if __name__ == "__main__":