fix: add separate timeout for instalelr (#109)

* fix(installer): add separate timeout for installer
This commit is contained in:
Smirnov Oleksandr 2025-03-30 17:20:08 +03:00 committed by GitHub
parent ea28fc4e6f
commit 9d28cdebf1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 5 deletions

View file

@ -3,7 +3,7 @@ local log = require "gopher._utils.log"
local utils = {}
---@param msg string
---@param lvl? number
---@param lvl? number by default `vim.log.levels.INFO`
function utils.notify(msg, lvl)
lvl = lvl or vim.log.levels.INFO
vim.notify(msg, lvl, {

View file

@ -25,6 +25,9 @@ local default_config = {
---@type number
timeout = 2000,
--- timeout for running installer commands(e.g :GoDepsInstall, :GoDepsInstallSync)
installer_timeout = 999999,
-- user specified paths to binaries
---@class gopher.ConfigCommand
commands = {

View file

@ -1,4 +1,4 @@
local c = require("gopher.config").commands
local c = require "gopher.config"
local r = require "gopher._utils.runner"
local u = require "gopher._utils"
local log = require "gopher._utils.log"
@ -30,14 +30,22 @@ end
---@param url string
local function install(url)
r.async({ c.go, "install", url }, function(opt)
handle_intall_exit(opt, url)
vim.schedule(function()
u.notify("go install-ing: " .. url)
end)
r.async({ c.commands.go, "install", url }, function(opt)
handle_intall_exit(opt, url)
end, { timeout = c.installer_timeout })
end
---@param url string
local function install_sync(url)
local rs = r.sync { c.go, "install", url }
vim.schedule(function()
u.notify("go install-ing: " .. url)
end)
local rs = r.sync({ c.commands.go, "install", url }, { timeout = c.installer_timeout })
handle_intall_exit(rs, url)
end