mirror of
https://github.com/zoriya/dotfiles.git
synced 2026-06-04 03:26:38 +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 = {}
|
local M = {}
|
||||||
|
|
||||||
M.pattern = "*.sln"
|
M.patterns = { "*.sln" }
|
||||||
|
|
||||||
M.list = function()
|
M.list = function()
|
||||||
local ignore = 3
|
local ignore = 3
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ local M = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
table.insert(M.adapters, require "build.adapters.dotnet")
|
table.insert(M.adapters, require "build.adapters.dotnet")
|
||||||
|
table.insert(M.adapters, require "build.adapters.docker-compose")
|
||||||
|
|
||||||
M.list_projs = function()
|
M.list_projs = function()
|
||||||
local projs = {}
|
local projs = {}
|
||||||
@@ -16,16 +17,18 @@ M.list_projs = function()
|
|||||||
-- TODO: Use async methods here. (currently waiting for plenary async jobs)
|
-- TODO: Use async methods here. (currently waiting for plenary async jobs)
|
||||||
|
|
||||||
for _, adapter in pairs(M.adapters) do
|
for _, adapter in pairs(M.adapters) do
|
||||||
for _, match in pairs(vim.fn.glob(adapter.pattern, false, true)) do
|
for _, pattern in pairs(adapter.patterns) do
|
||||||
for _, proj in pairs(adapter.list(match)) do
|
for _, match in pairs(vim.fn.glob(pattern, false, true)) do
|
||||||
proj.adapter = adapter
|
for _, proj in pairs(adapter.list(match)) do
|
||||||
proj.source = match
|
proj.adapter = adapter
|
||||||
proj.icon = proj.icon or has_icon and nwicon.get_icon(
|
proj.source = match
|
||||||
vim.fn.fnamemodify(proj.file, ':t'),
|
proj.icon = proj.icon or has_icon and nwicon.get_icon(
|
||||||
vim.fn.fnamemodify(proj.file, ':e'),
|
vim.fn.fnamemodify(proj.file, ':t'),
|
||||||
{ default = true }
|
vim.fn.fnamemodify(proj.file, ':e'),
|
||||||
) or " "
|
{ default = true }
|
||||||
table.insert(projs, proj)
|
) or " "
|
||||||
|
table.insert(projs, proj)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user