mirror of
https://github.com/zoriya/dotfiles.git
synced 2026-05-24 15:28:47 +00:00
Add docker-compose to the list of build adapters
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
local Job = require 'plenary.job'
|
||||
|
||||
local M = {}
|
||||
|
||||
M.patterns = {
|
||||
"**/docker-compose.yml",
|
||||
"**/docker-compose.*.yml"
|
||||
}
|
||||
|
||||
M.list = function(dc)
|
||||
return {
|
||||
{
|
||||
name = dc,
|
||||
file = dc,
|
||||
icon = "",
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
M.build = function(proj)
|
||||
local function add_to_qf(err, data)
|
||||
vim.fn.setqflist({}, "a", {
|
||||
lines = { err and err or data },
|
||||
})
|
||||
end
|
||||
|
||||
return Job:new({
|
||||
command = "docker-compose",
|
||||
args = { "-f", proj.file, "build" },
|
||||
on_stdout = vim.schedule_wrap(add_to_qf),
|
||||
on_stderr = vim.schedule_wrap(add_to_qf),
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
M.run = function(proj)
|
||||
return "docker-compose -f" .. proj.file .. " up --build"
|
||||
end
|
||||
|
||||
M.require_build = false
|
||||
|
||||
return M
|
||||
@@ -2,7 +2,7 @@ local Job = require 'plenary.job'
|
||||
|
||||
local M = {}
|
||||
|
||||
M.pattern = "*.sln"
|
||||
M.patterns = { "*.sln" }
|
||||
|
||||
M.list = function()
|
||||
local ignore = 3
|
||||
|
||||
@@ -9,6 +9,7 @@ local M = {
|
||||
}
|
||||
|
||||
table.insert(M.adapters, require "build.adapters.dotnet")
|
||||
table.insert(M.adapters, require "build.adapters.docker-compose")
|
||||
|
||||
M.list_projs = function()
|
||||
local projs = {}
|
||||
@@ -16,16 +17,18 @@ M.list_projs = function()
|
||||
-- TODO: Use async methods here. (currently waiting for plenary async jobs)
|
||||
|
||||
for _, adapter in pairs(M.adapters) do
|
||||
for _, match in pairs(vim.fn.glob(adapter.pattern, false, true)) do
|
||||
for _, proj in pairs(adapter.list(match)) do
|
||||
proj.adapter = adapter
|
||||
proj.source = match
|
||||
proj.icon = proj.icon or has_icon and nwicon.get_icon(
|
||||
vim.fn.fnamemodify(proj.file, ':t'),
|
||||
vim.fn.fnamemodify(proj.file, ':e'),
|
||||
{ default = true }
|
||||
) or " "
|
||||
table.insert(projs, proj)
|
||||
for _, pattern in pairs(adapter.patterns) do
|
||||
for _, match in pairs(vim.fn.glob(pattern, false, true)) do
|
||||
for _, proj in pairs(adapter.list(match)) do
|
||||
proj.adapter = adapter
|
||||
proj.source = match
|
||||
proj.icon = proj.icon or has_icon and nwicon.get_icon(
|
||||
vim.fn.fnamemodify(proj.file, ':t'),
|
||||
vim.fn.fnamemodify(proj.file, ':e'),
|
||||
{ default = true }
|
||||
) or " "
|
||||
table.insert(projs, proj)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user