64 lines
2.0 KiB
Lua
64 lines
2.0 KiB
Lua
local baseURL = "https://gitea.ar2000.me/AR2000/CC_monorepo/raw/branch/main"
|
|
--wget run http://127.0.0.1:8888/pm_installer/install.lua
|
|
local function concatPath(...) return table.concat({...}, '/') end
|
|
---@type function
|
|
local mkdir = fs.makeDir
|
|
|
|
local function wget(src, dst)
|
|
local r, rr = http.get(src)
|
|
if (not r) then
|
|
error(rr, 0)
|
|
end
|
|
io.open(dst, 'w'):write(r.readAll()):close()
|
|
r.close()
|
|
end
|
|
|
|
local path = "/tmp/" .. math.floor(math.random() * 10E9) .. "/"
|
|
mkdir("/tmp")
|
|
mkdir(path)
|
|
mkdir(concatPath(path, 'bin'))
|
|
mkdir(concatPath(path, 'lib'))
|
|
mkdir(concatPath(path, 'lib/arutils'))
|
|
local files = {
|
|
['pm_get/bin/pm-get.lua'] = 'bin/pm-get.lua',
|
|
['pm/bin/pm.lua'] = 'bin/pm.lua',
|
|
['pm/lib/libpm.lua'] = 'lib/libpm.lua',
|
|
['tar/lib/tar.lua'] = 'lib/tar.lua',
|
|
['arutils/lib/arutils/init.lua'] = 'lib/arutils/init.lua',
|
|
['arutils/lib/arutils/parse.lua'] = 'lib/arutils/parse.lua',
|
|
|
|
}
|
|
local packages = {'pm.tar', 'pm_get.tar', 'libtar.tar', 'arutils.tar', 'usrpath.tar',}
|
|
for src, dst in pairs(files) do
|
|
print(string.format("Downloading %q as %q", path, dst))
|
|
wget(concatPath(baseURL, src), concatPath(path, dst))
|
|
end
|
|
for _, pkg in pairs(packages) do
|
|
print(string.format("Downloading %q as %q", path, pkg))
|
|
wget(concatPath(baseURL, "packages", pkg), concatPath(path, pkg))
|
|
end
|
|
|
|
print("Installing ...")
|
|
|
|
--init path
|
|
local oldPackagePath = package.path
|
|
package.path = table.concat({oldPackagePath, string.format("%s/lib/?.lua;%s/lib/?/init.lua", path, path)}, ";")
|
|
|
|
local pm = loadfile(path .. "bin/pm.lua", "bt", _ENV)
|
|
|
|
--install
|
|
if (pm) then
|
|
pm("install", "--allow-same-version", path .. "libtar.tar")
|
|
pm("install", "--allow-same-version", path .. "arutils.tar")
|
|
pm("install", "--allow-same-version", path .. "usrpath.tar")
|
|
pm("install", "--allow-same-version", path .. "pm.tar")
|
|
pm("install", "--allow-same-version", path .. "pm_get.tar")
|
|
|
|
package.path = oldPackagePath
|
|
shell.setPath(shell.path() .. ":/usr/bin")
|
|
|
|
shell.run("pm-get update")
|
|
shell.run("pm-get upgrade")
|
|
end
|
|
fs.delete(path)
|