local args = { ... } local packageStoreageUrl = "/packages" if args[1] == "list" then local res = http.get("http://85.214.239.211:7000/api/repo/list") local ds = res.readAll() print(ds) local json = textutils.unserializeJSON(ds) print(json.name) end if args[1] == "install" then if args[2] ~= nil then if fs.exists(packageStoreageUrl .. "/" .. args[2]) then print("Package already installed!") return; end local ws, stat = http.websocket("ws://85.214.239.211:7000/repo/install") local msg = { repoName = args[2] } ws.send(textutils.serializeJSON(msg)) local full = 0 local chunks = {} local received = {} while true do local msg = ws.receive() local id, indexMeta, chunk = msg:match("([^|]+)|([^|]+)|(.+)") local index, total = indexMeta:match("(%d+)/(%d+)") index = tonumber(index) total = tonumber(total) if not chunks[id] then chunks[id] = { total = total, parts = {} } end chunks[id].parts[index + 1] = chunk -- Check if complete local allReceived = true for i = 1, total do if not chunks[id].parts[i] then allReceived = false break end end if allReceived and not received[id] then received[id] = true full = table.concat(chunks[id].parts) print("Message received") break end end -------------- local rec_msg = full --print(rec_msg .. "ds") local file = fs.open("output.json", "w") file.write(rec_msg) file.close() local json = textutils.unserializeJSON(rec_msg) --print(json) local wget = loadfile("/rom/programs/http/wget.lua") if json.statusCode == 404 then print("The Requested package was not found!") return end for k, v in pairs(json) do local path = packageStoreageUrl .. v.relativePath if fs.exists(path) then print("File " .. path .. " already exists!") return end shell.run("wget", v.downloadUrl, path) end else print("Please enter a package name!") return end end if args[1] == "remove" then if args[2] ~= nil then if fs.exists(packageStoreageUrl .. "/" .. args[2]) then fs.delete(packageStoreageUrl .. "/" .. args[2]) print(args[2] .. " Was removed from your system!") else print("No such package installed/found!") return end else print("Please enter a package name!") return end end