From 95db3720b4aa3f4eaa2006306b7cd12df9eec4e5 Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 20 Sep 2025 18:47:11 +0800 Subject: improve extension again --- xmake/modules/private/action/require/impl/actions/download.lua | 3 ++- xmake/modules/utils/archive/extension.lua | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/xmake/modules/private/action/require/impl/actions/download.lua b/xmake/modules/private/action/require/impl/actions/download.lua index 56d529fa5..47690273e 100644 --- a/xmake/modules/private/action/require/impl/actions/download.lua +++ b/xmake/modules/private/action/require/impl/actions/download.lua @@ -39,7 +39,8 @@ function _url_extension(url) local extension = archive.extension(url) if extension == "" then -- maybe non-archive file, e.g. .exe, .sh, .. - extension = path.extension(url) + local urlpath = url:split('?', {plain = true})[1] + extension = path.extension(urlpath) end return extension end diff --git a/xmake/modules/utils/archive/extension.lua b/xmake/modules/utils/archive/extension.lua index aff579bd3..2dd7d4c97 100644 --- a/xmake/modules/utils/archive/extension.lua +++ b/xmake/modules/utils/archive/extension.lua @@ -22,9 +22,10 @@ import("core.base.hashset") -- get the archive extension -function main(archivefile) +function main(url) + local urlpath = url:split('?', {plain = true})[1] local extension = "" - local filename = path.filename(archivefile) + local filename = path.filename(urlpath) local extensionset = hashset.from({ ".xmz", -- xmake compression format ".zip", ".7z", ".gz", ".xz", ".zst", ".tgz", -- cgit v1.3.1