local pm = require'pm' local ws = assert(http.websocket("wss://citrons.xyz/ws-echo/rebecca")) local function splitw(str) local res = {} for s in str:gmatch("%S+") do table.insert(res, s) end return res end local ops = {} function ops.deploy(pkgname) pm.cc() pm.dl(pkgname) shell.run('bg '..pkgname) end function ops.test() print("hello world") end function main() print("listening") while true do local msg = ws.receive() local parsed = assert(textutils.unserializeJSON(msg)) if parsed.msg then print("got msg",parsed.msg) local words = splitw(parsed.msg) if words[1] ~= "RRP" then print("non-RRP message!") else local target = words[2] local mylabel = os.computerLabel() if not (target == mylabel or target == "*") then print("not for me") else local op = words[3] if ops[op] then ops[op](unpack(args,4)) else print("unknown op "..op) end end end end end end local ok, err = pcall(main) if not ok then print(err) end ws.close() print("all done")