aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/core/async/spawn.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-03-26 13:41:50 +0100
committerGitHub <noreply@github.com>2022-03-26 13:41:50 +0100
commit212d17a039da449043b67529c29851db37acc236 (patch)
tree38411b14487895cef0d7648e198b79fd28793fe6 /lua/nvim-lsp-installer/core/async/spawn.lua
parentrun autogen_metadata.lua (diff)
downloadmason-212d17a039da449043b67529c29851db37acc236.tar
mason-212d17a039da449043b67529c29851db37acc236.tar.gz
mason-212d17a039da449043b67529c29851db37acc236.tar.bz2
mason-212d17a039da449043b67529c29851db37acc236.tar.lz
mason-212d17a039da449043b67529c29851db37acc236.tar.xz
mason-212d17a039da449043b67529c29851db37acc236.tar.zst
mason-212d17a039da449043b67529c29851db37acc236.zip
add async managers (#536)
Diffstat (limited to 'lua/nvim-lsp-installer/core/async/spawn.lua')
-rw-r--r--lua/nvim-lsp-installer/core/async/spawn.lua63
1 files changed, 0 insertions, 63 deletions
diff --git a/lua/nvim-lsp-installer/core/async/spawn.lua b/lua/nvim-lsp-installer/core/async/spawn.lua
deleted file mode 100644
index 5fc7eee7..00000000
--- a/lua/nvim-lsp-installer/core/async/spawn.lua
+++ /dev/null
@@ -1,63 +0,0 @@
-local a = require "nvim-lsp-installer.core.async"
-local Result = require "nvim-lsp-installer.core.result"
-local process = require "nvim-lsp-installer.process"
-local platform = require "nvim-lsp-installer.platform"
-
-local async_spawn = a.promisify(process.spawn)
-
----@type Record<string, fun(opts: JobSpawnOpts): Result>
-local spawn = {
- aliases = {
- npm = platform.is_win and "npm.cmd" or "npm",
- },
-}
-
-local function Failure(err, cmd)
- return Result.failure(setmetatable(err, {
- __tostring = function()
- return ("spawn: %s failed with exit code %d"):format(cmd, err.exit_code)
- end,
- }))
-end
-
-setmetatable(spawn, {
- __index = function(self, k)
- return function(args)
- local cmd_args = {}
- for i, arg in ipairs(args) do
- cmd_args[i] = arg
- end
- ---@type JobSpawnOpts
- local spawn_args = {
- stdio_sink = args.stdio_sink,
- cwd = args.cwd,
- env = args.env,
- args = cmd_args,
- }
-
- local stdio
- if not spawn_args.stdio_sink then
- stdio = process.in_memory_sink()
- spawn_args.stdio_sink = stdio.sink
- end
-
- local cmd = self.aliases[k] or k
- local _, exit_code = async_spawn(cmd, spawn_args)
-
- if exit_code == 0 then
- return Result.success {
- stdout = stdio and table.concat(stdio.buffers.stdout, "") or nil,
- stderr = stdio and table.concat(stdio.buffers.stderr, "") or nil,
- }
- else
- return Failure({
- exit_code = exit_code,
- stdout = stdio and table.concat(stdio.buffers.stdout, "") or nil,
- stderr = stdio and table.concat(stdio.buffers.stderr, "") or nil,
- }, cmd)
- end
- end
- end,
-})
-
-return spawn