diff options
| author | ruki <[email protected]> | 2025-04-11 23:03:54 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-04-11 23:03:54 +0800 |
| commit | 9b1e0c32d9258d314ead010386ff7a2ebc5c3f93 (patch) | |
| tree | d259d7ddefd4bcaefa213ee22a1cd52f76a67e9f | |
| parent | fa122559e2fcb560f7be7b6f61241b8caf524c65 (diff) | |
improve extract #6311
| -rw-r--r-- | xmake/modules/utils/archive/extract.lua | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/xmake/modules/utils/archive/extract.lua b/xmake/modules/utils/archive/extract.lua index edf75eaf8..a77c10b6e 100644 --- a/xmake/modules/utils/archive/extract.lua +++ b/xmake/modules/utils/archive/extract.lua @@ -166,9 +166,7 @@ function _extract_using_7z(archivefile, outputdir, extension, opt) -- https://github.com/xmake-io/xmake-repo/pull/2673 os.tryrm(path.join(outputdir, "*.paxheader")) end - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end -- extract archivefile using gzip @@ -210,9 +208,7 @@ function _extract_using_gzip(archivefile, outputdir, extension, opt) -- extract it os.vrunv(program, argv, {curdir = outputdir}) - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end -- extract archivefile using xz @@ -254,9 +250,7 @@ function _extract_using_xz(archivefile, outputdir, extension, opt) -- extract it os.vrunv(program, argv, {curdir = outputdir}) - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end -- extract archivefile using zstd @@ -298,9 +292,7 @@ function _extract_using_zstd(archivefile, outputdir, extension, opt) -- extract it os.vrunv(program, argv, {curdir = outputdir}) - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end -- extract archivefile using unzip @@ -346,9 +338,7 @@ function _extract_using_unzip(archivefile, outputdir, extension, opt) -- extract it os.vrunv(program, argv) - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end -- extract archivefile using powershell @@ -379,12 +369,9 @@ function _extract_using_powershell(archivefile, outputdir, extension, opt) -- extract it local argv = {"-ExecutionPolicy", "Bypass", "-File", scriptfile, archivefile, outputdir} os.vrunv(powershell.program, argv) - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end - -- extract archivefile using bzip2 function _extract_using_bzip2(archivefile, outputdir, extension, opt) @@ -429,9 +416,7 @@ function _extract_using_bzip2(archivefile, outputdir, extension, opt) -- extract it os.vrunv(program, argv, {curdir = outputdir}) - - _extract_uncompressed_tar(outputdir_old, outputdir, opt) - return true + return _extract_uncompressed_tar(outputdir_old, outputdir, opt) end -- extract *.tar after decompress @@ -439,9 +424,14 @@ function _extract_uncompressed_tar(outputdir_old, outputdir, opt) if outputdir_old then local tarfile = find_file("**.tar", outputdir) if tarfile and os.isfile(tarfile) then - return _extract(tarfile, outputdir_old, ".tar", {_extract_using_7z, _extract_using_tar}, opt) + local ok = _extract(tarfile, outputdir_old, ".tar", {_extract_using_7z, _extract_using_tar}, opt) + -- remove the temporary tar file + -- @see https://github.com/xmake-io/xmake/issues/6311 + os.rm(tarfile) + return ok end end + return true end -- extract archive file using extractors |
