fix(util): made Util.lsmod more robust. See #298

This commit is contained in:
Folke Lemaitre 2023-01-03 22:31:18 +01:00
parent f36c7cb0dc
commit 953c2791d8
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
3 changed files with 52 additions and 15 deletions

View file

@ -257,14 +257,14 @@ function M.get_topmods(path)
end
---@param modname string
---@return string?, string?
function M.find_dir(modname)
---@return string?
function M.find_root(modname)
if M.cache[modname] then
-- check if modname is in cache
local modpath = M.cache[modname].modpath
if M.check_path(modname, modpath) then
local root = modpath:gsub("/init%.lua$", ""):gsub("%.lua$", "")
return root, modpath
return root
end
else
-- in case modname is just a directory and not a real mod,
@ -286,7 +286,7 @@ function M.find_dir(modname)
local modpath = M.find(modname, { patterns = { "" } })
if modpath then
local root = modpath:gsub("/init%.lua$", ""):gsub("%.lua$", "")
return root, (modpath ~= root and modpath or nil)
return root
end
end