Files
cash-register/remotedbserver.lua
2026-04-05 00:58:39 +00:00

37 lines
983 B
Lua

if not fs.exists("data.db") then
local file = fs.open("data.db", "w")
file.write("{}")
file.close()
end
local file = fs.open("data.db","r+")
local eplib = require("entrypointlib")
if not file then error("failed to open db file") end
local function readTable()
file.seek("set")
return textutils.unserialise(file.readAll() or "{}") or {}
end
local function writeTable(t)
file.seek("set")
file.write(textutils.serialise(t))
file.flush()
end
local function receive()
while true do
sleep(0)
local _,msg,id = os.pullEvent("network_packet")
if msg.proto == "getTable" then
eplib.send({proto = "resp", table = readTable()}, id)
print("sent table to "..tostring(id))
elseif msg.proto == "setTable" then
writeTable(msg.table)
print("updated table from "..tostring(id))
eplib.send({proto="OK"},id)
end
end
end
parallel.waitForAny(eplib.loop,receive)