feat(build): build can now be a list to execute multiple build commands. Fixes #143

This commit is contained in:
Folke Lemaitre 2022-12-24 09:17:29 +01:00
parent 593d6e400b
commit 9110371120
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
3 changed files with 42 additions and 42 deletions

View file

@ -11,25 +11,25 @@ M.build = {
run = function(self)
Loader.load(self.plugin, { task = "build" })
-- we need to source its plugin files before startup,
-- to make sure the build command has everything available
Loader.source_runtime(self.plugin.dir, "plugin")
local builders = self.plugin.build
if builders then
builders = type(builders) == "table" and builders or { builders }
---@cast builders (string|fun(LazyPlugin))[]
for _, build in ipairs(builders) do
if type(build) == "string" and build:sub(1, 1) == ":" then
local cmd = vim.api.nvim_parse_cmd(build:sub(2), {})
self.output = vim.api.nvim_cmd(cmd, { output = true })
elseif type(build) == "function" then
build()
else
local shell = vim.env.SHELL or vim.o.shell
local shell_args = shell:find("cmd.exe", 1, true) and "/c" or "-c"
local build = self.plugin.build
if build then
if type(build) == "string" and build:sub(1, 1) == ":" then
local cmd = vim.api.nvim_parse_cmd(build:sub(2), {})
self.output = vim.api.nvim_cmd(cmd, { output = true })
elseif type(build) == "function" then
build()
else
local shell = vim.env.SHELL or vim.o.shell
local shell_args = shell:find("cmd.exe", 1, true) and "/c" or "-c"
return self:spawn(shell, {
args = { shell_args, build },
cwd = self.plugin.dir,
})
self:spawn(shell, {
args = { shell_args, build },
cwd = self.plugin.dir,
})
end
end
end
end,