Bugfix: Force binary rebuild

We need to rebuild the binary whenever the plugin has changed.
Previously we were not doing this if the binary already existed. This MR
adds an override parameter to the build() function which will force a
rebuild even if the binary already exists.

The README has been updated to note that this parameter should be used
for Packer/Lazy, and when someone is troubleshooting. It won't be passed
in to the build function during the normal setup call.

Should address #55
This commit is contained in:
Harrison Cramer
2023-09-04 11:44:24 -04:00
parent 6cb9d2887c
commit ac2118ceb6
2 changed files with 8 additions and 7 deletions

View File

@@ -40,7 +40,7 @@ return {
"stevearc/dressing.nvim", -- Recommended but not required. Better UI for pickers. "stevearc/dressing.nvim", -- Recommended but not required. Better UI for pickers.
enabled = true, enabled = true,
}, },
build = function () require("gitlab.server").build() end, -- Builds the Go binary build = function () require("gitlab.server").build(true) end, -- Builds the Go binary
config = function() config = function()
require("gitlab").setup() require("gitlab").setup()
end, end,
@@ -56,7 +56,7 @@ use {
"MunifTanjim/nui.nvim", "MunifTanjim/nui.nvim",
"nvim-lua/plenary.nvim" "nvim-lua/plenary.nvim"
}, },
run = function() require("gitlab.server").build() end, run = function() require("gitlab.server").build(true) end,
config = function() config = function()
require("gitlab").setup() require("gitlab").setup()
end, end,
@@ -244,7 +244,7 @@ vim.keymap.set("n", "<leader>glp", gitlab.pipeline)
This plugin uses a Golang server to reach out to Gitlab. It's possible that something is going wrong when starting that server or connecting with Gitlab. The Golang server runs outside of Neovim, and can be interacted with directly in order to troubleshoot. To start the server, check out your feature branch and run these commands: This plugin uses a Golang server to reach out to Gitlab. It's possible that something is going wrong when starting that server or connecting with Gitlab. The Golang server runs outside of Neovim, and can be interacted with directly in order to troubleshoot. To start the server, check out your feature branch and run these commands:
``` ```
:lua require("gitlab.server").build() :lua require("gitlab.server").build(true)
:lua require("gitlab.server").start(function() print("Server started") end) :lua require("gitlab.server").start(function() print("Server started") end)
``` ```

View File

@@ -1,7 +1,6 @@
-- This module contains the logic responsible for building and starting -- This module contains the logic responsible for building and starting
-- the Golang server. The Go server is responsible for making API calls -- the Golang server. The Go server is responsible for making API calls
-- to Gitlab and returning the data -- to Gitlab and returning the data
local job = require("gitlab.job")
local state = require("gitlab.state") local state = require("gitlab.state")
local u = require("gitlab.utils") local u = require("gitlab.utils")
local M = {} local M = {}
@@ -43,7 +42,7 @@ end
-- Builds the Go binary -- Builds the Go binary
M.build = function() M.build = function(override)
if not u.has_delta() then if not u.has_delta() then
vim.notify("Please install delta to use gitlab.nvim!", vim.log.levels.ERROR) vim.notify("Please install delta to use gitlab.nvim!", vim.log.levels.ERROR)
return return
@@ -54,8 +53,10 @@ M.build = function()
state.settings.bin_path = parent_dir state.settings.bin_path = parent_dir
state.settings.bin = parent_dir .. "/bin" state.settings.bin = parent_dir .. "/bin"
if not override then
local binary_exists = vim.loop.fs_stat(state.settings.bin) local binary_exists = vim.loop.fs_stat(state.settings.bin)
if binary_exists ~= nil then return end if binary_exists ~= nil then return end
end
local command = string.format("cd %s && make", state.settings.bin_path) local command = string.format("cd %s && make", state.settings.bin_path)
local installCode = os.execute(command .. "> /dev/null") local installCode = os.execute(command .. "> /dev/null")