codemp-nvim/build.lua

36 lines
1.2 KiB
Lua
Raw Normal View History

local plugin_dir = vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":p:h") -- got this from https://lazy.folke.io/developers#building
2024-09-05 05:27:00 +02:00
2024-09-10 16:07:08 +02:00
local os_uname = vim.loop.os_uname()
local arch = os_uname.machine
local platform = string.lower(os_uname.sysname)
if platform == "mac" then platform = "darwin" end
local ext = os_uname.sysname
2024-09-10 16:21:12 +02:00
if os_uname.sysname == "Windows" then ext = "dll"
elseif os_uname.sysname == "Mac" then ext = "dylib"
else ext = "so"
2024-09-10 16:07:08 +02:00
end
-- -- TODO compare checksum before redownloading
-- if vim.fn.filereadable(path .. 'native' .. ext) == 1 then
-- shasum = vim.fn.system("sha256sum " .. path .. 'native' .. ext)
-- end
2024-09-10 16:07:08 +02:00
local native_path = plugin_dir .. "/lua/codemp/new-native." .. ext
local replace_native_path = plugin_dir .. "/lua/codemp/native." .. ext
2024-09-10 16:07:08 +02:00
local download_url_native = string.format("https://code.mp/releases/lua/codemp-lua-%s-%s.%s", arch, platform, ext)
print("downloading codemp native lua extension...")
2024-09-06 03:26:30 +02:00
vim.system({"curl", "-s", "-o", native_path, download_url_native }):wait() -- TODO can we run this asynchronously?
print("downloaded! exit nvim to reload library")
vim.api.nvim_create_autocmd(
{"ExitPre"},
{
callback = function (_ev)
2024-09-10 16:21:12 +02:00
vim.system({"mv", native_path, replace_native_path}, { detach = true })
end
}
)