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)