feat(install): allow specifying max jobs

This commit is contained in:
Christian Clason 2024-08-27 11:02:34 +02:00
parent ab230eadd4
commit 83dae49a10
2 changed files with 7 additions and 3 deletions

View file

@ -23,7 +23,7 @@ local uv_symlink = a.wrap(uv.fs_symlink, 4)
---@type fun(path: string): string?
local uv_unlink = a.wrap(uv.fs_unlink, 2)
local MAX_JOBS = 10
local MAX_JOBS = 100
local INSTALL_TIMEOUT = 60000
---@async
@ -402,6 +402,7 @@ end
---@class InstallOptions
---@field force? boolean
---@field generate? boolean
---@field max_jobs? integer
--- Install a parser
---@param languages string[]
@ -425,7 +426,7 @@ local function install(languages, options, _callback)
end)
end
a.join(MAX_JOBS, nil, tasks)
a.join(options and options.max_jobs or MAX_JOBS, nil, tasks)
if #tasks > 1 then
a.main()
log.info('Installed %d/%d languages', done, #tasks)

View file

@ -1,10 +1,13 @@
#!/usr/bin/env -S nvim -l
local generate = false
local max_jobs = nil ---@as integer
local parsers = {}
for i = 1, #_G.arg do
if _G.arg[i] == '--generate' then
generate = true
elseif _G.arg[i]:find('^%-%-max%-jobs') then
max_jobs = _G.arg[i]:match('=(%d+)')
else
parsers[#parsers + 1] = _G.arg[i]
end
@ -18,7 +21,7 @@ vim.fn.mkdir(vim.fn.stdpath('cache'), 'p')
local done = false
require('nvim-treesitter.install').install(
#parsers > 0 and parsers or 'all',
{ force = true, generate = generate },
{ force = true, generate = generate, max_jobs = max_jobs },
function()
done = true
end