diff options
| author | William Boman <william@redwill.se> | 2021-05-17 16:48:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-17 16:48:06 +0200 |
| commit | 6a3a3fee295c6811ec0a420d3bd4f92e973baa29 (patch) | |
| tree | df8580f45a7518ed5a394002f91073fd27ab6fb2 /lua/nvim-lsp-installer/installers/init.lua | |
| parent | s/install_cmd/installer/g (#15) (diff) | |
| download | mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.tar mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.tar.gz mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.tar.bz2 mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.tar.lz mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.tar.xz mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.tar.zst mason-6a3a3fee295c6811ec0a420d3bd4f92e973baa29.zip | |
zx: compose installer with shell.raw (#16)
Diffstat (limited to 'lua/nvim-lsp-installer/installers/init.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/installers/init.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/installers/init.lua b/lua/nvim-lsp-installer/installers/init.lua new file mode 100644 index 00000000..8cc0e34c --- /dev/null +++ b/lua/nvim-lsp-installer/installers/init.lua @@ -0,0 +1,28 @@ +local M = {} + +function M.compose(installers) + if #installers == 0 then + error("No installers to compose.") + end + + return function (server, callback) + local function execute(idx) + installers[idx](server, function (success, result) + if not success then + -- oh no, error. exit early + callback(success, result) + elseif installers[idx - 1] then + -- iterate + execute(idx - 1) + else + -- we done + callback(success, result) + end + end) + end + + execute(#installers) + end +end + +return M |
