aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/core/spawn.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-04-21 12:09:59 +0200
committerGitHub <noreply@github.com>2022-04-21 12:09:59 +0200
commitb68fcc6bb2c770495ff8e2508c06dfdd49abcc80 (patch)
treedf7c71efb59958deb21a18eeccf3e3c43c4cd704 /lua/nvim-lsp-installer/core/spawn.lua
parentrun autogen_metadata.lua (diff)
downloadmason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.tar
mason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.tar.gz
mason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.tar.bz2
mason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.tar.lz
mason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.tar.xz
mason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.tar.zst
mason-b68fcc6bb2c770495ff8e2508c06dfdd49abcc80.zip
chore: refactor remaining installers to async impl (#616)
Diffstat (limited to 'lua/nvim-lsp-installer/core/spawn.lua')
-rw-r--r--lua/nvim-lsp-installer/core/spawn.lua20
1 files changed, 11 insertions, 9 deletions
diff --git a/lua/nvim-lsp-installer/core/spawn.lua b/lua/nvim-lsp-installer/core/spawn.lua
index 355df029..8b849f64 100644
--- a/lua/nvim-lsp-installer/core/spawn.lua
+++ b/lua/nvim-lsp-installer/core/spawn.lua
@@ -10,15 +10,8 @@ local spawn = {
npm = platform.is_win and "npm.cmd" or "npm",
gem = platform.is_win and "gem.cmd" or "gem",
composer = platform.is_win and "composer.bat" or "composer",
+ gradlew = platform.is_win and "gradlew.bat" or "gradlew",
},
- -- Utility function for optionally including arguments.
- ---@generic T
- ---@param condition boolean
- ---@param value T
- ---@return T
- _when = function(condition, value)
- return condition and value or vim.NIL
- end,
}
local function Failure(err, cmd)
@@ -50,11 +43,20 @@ setmetatable(spawn, {
return function(args)
local cmd_args = {}
parse_args(args, cmd_args)
+
+ ---@type table<string, string>
+ local env = args.env
+
+ if args.with_paths then
+ env = env or {}
+ env.PATH = process.extend_path(args.with_paths)
+ end
+
---@type JobSpawnOpts
local spawn_args = {
stdio_sink = args.stdio_sink,
cwd = args.cwd,
- env = args.env,
+ env = env and process.graft_env(env) or args.env_raw,
args = cmd_args,
}