aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
author3uryd1ce <99762926+3uryd1ce@users.noreply.github.com>2023-08-19 00:48:10 -0600
committerGitHub <noreply@github.com>2023-08-19 08:48:10 +0200
commita51c2d063c5377ee9e58c5f9cda7c7436787be72 (patch)
treeb8a61c7726b9ba92153aed6cbb64c728ed9ec105 /lua
parentfeat(cargo): support fetching versions for git crates hosted on github (#1459) (diff)
downloadmason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.tar
mason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.tar.gz
mason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.tar.bz2
mason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.tar.lz
mason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.tar.xz
mason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.tar.zst
mason-a51c2d063c5377ee9e58c5f9cda7c7436787be72.zip
fix(std): use gtar if available (#1433)
Closes #1415.
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/installer/managers/std.lua5
-rw-r--r--lua/mason/health.lua4
2 files changed, 7 insertions, 2 deletions
diff --git a/lua/mason-core/installer/managers/std.lua b/lua/mason-core/installer/managers/std.lua
index d08de888..6e1a0d9e 100644
--- a/lua/mason-core/installer/managers/std.lua
+++ b/lua/mason-core/installer/managers/std.lua
@@ -1,5 +1,6 @@
local Result = require "mason-core.result"
local _ = require "mason-core.functional"
+local a = require "mason-core.async"
local fetch = require "mason-core.fetch"
local installer = require "mason-core.installer"
local log = require "mason-core.log"
@@ -108,7 +109,9 @@ end
local function untar(rel_path)
log.fmt_debug("std: untar %s", rel_path)
local ctx = installer.context()
- return ctx.spawn.tar({ "--no-same-owner", "-xvf", rel_path }):on_success(function()
+ a.scheduler()
+ local tar = vim.fn.executable "gtar" == 1 and "gtar" or "tar"
+ return ctx.spawn[tar]({ "--no-same-owner", "-xvf", rel_path }):on_success(function()
pcall(function()
ctx.fs:unlink(rel_path)
end)
diff --git a/lua/mason/health.lua b/lua/mason/health.lua
index fdd5ea07..ade8a29d 100644
--- a/lua/mason/health.lua
+++ b/lua/mason/health.lua
@@ -143,7 +143,9 @@ local function check_core_utils()
use_stderr = platform.is.mac, -- Apple gzip prints version string to stderr
relaxed = platform.is.win,
}
- check { cmd = "tar", args = { "--version" }, name = "tar" }
+
+ local tar = vim.fn.executable "gtar" == 1 and "gtar" or "tar"
+ check { cmd = tar, args = { "--version" }, name = tar }
if platform.is.unix then
check { cmd = "bash", args = { "--version" }, name = "bash" }