function PLUGIN:PostInstall(ctx)
local cmd = require("cmd")
local sdkInfo = ctx.sdkInfo["bpkg"]
local path = sdkInfo.path
local version = sdkInfo.version
local srcDir = path .. "/bpkg-" .. version
local file = io.open(srcDir .. "/bpkg.sh", "r")
if file then
file:close()
else
srcDir = path
end
cmd.exec("mkdir -p '" .. path .. "/bin'")
cmd.exec("cp -r '" .. srcDir .. "/lib' '" .. path .. "/bin/'")
cmd.exec("cp -f '" .. srcDir .. "/bpkg.sh' '" .. path .. "/bin/'")
local scripts = {
"bpkg",
"bpkg-env",
"bpkg-getdeps",
"bpkg-init",
"bpkg-install",
"bpkg-json",
"bpkg-list",
"bpkg-package",
"bpkg-run",
"bpkg-show",
"bpkg-source",
"bpkg-suggest",
"bpkg-term",
"bpkg-update",
"bpkg-utils",
"bpkg-realpath",
}
for _, script in ipairs(scripts) do
local src = srcDir .. "/" .. script
local dst = path .. "/bin/" .. script
cmd.exec("cp -P '" .. src .. "' '" .. dst .. "' 2>/dev/null || true")
end
cmd.exec("chmod +x '" .. path .. "/bin/bpkg.sh'")
cmd.exec("find '" .. path .. "/bin/lib' -name '*.sh' -exec chmod +x {} \\;")
local file = io.open(path .. "/bin/bpkg.sh", "r")
if file then
file:close()
else
error("Failed to install bpkg - main script not found at " .. path .. "/bin/bpkg.sh")
end
end