added an okay-enough netbooting system, can somewhat build images on its own
This commit is contained in:
parent
5ce319c0e4
commit
43f00e7669
49
modules/net/nbsrv.lua
Normal file
49
modules/net/nbsrv.lua
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
for k,v in ipairs(tM) do v.open(9671) end
|
||||||
|
s("nbsrv",function() print(pcall(function()
|
||||||
|
print("[netboot] loading data")
|
||||||
|
local f,tnbd=io.open("boot:/nbsrv.csv"),{}
|
||||||
|
setmetatable(tnbd,{__index=function(t,k)
|
||||||
|
return rawget(t,k) or {}
|
||||||
|
end})
|
||||||
|
if f then
|
||||||
|
local c=f:read("*a")
|
||||||
|
f:close()
|
||||||
|
for l in c:gmatch("[^\n]+") do
|
||||||
|
local c,i = 1,""
|
||||||
|
for d in l:gmatch("[^,]+") do
|
||||||
|
if c == 1 then
|
||||||
|
i=d
|
||||||
|
tnbd[i]={}
|
||||||
|
else
|
||||||
|
tnbd[i][#tnbd[i]+1]=d
|
||||||
|
end
|
||||||
|
c=c+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local d,d2="",""
|
||||||
|
local f=io.open("boot:/nbstart.lua")
|
||||||
|
if f then
|
||||||
|
d=f:read("*a")
|
||||||
|
f:close()
|
||||||
|
end
|
||||||
|
local f=io.open("boot:/nbend.lua")
|
||||||
|
if f then
|
||||||
|
d2=f:read("*a")
|
||||||
|
f:close()
|
||||||
|
end
|
||||||
|
while true do
|
||||||
|
if ev[1] == "modem_message" and ev[4] == 9671 then
|
||||||
|
print("[netboot] request from "..ev[3])
|
||||||
|
for k,v in ipairs(tnbd[ev[3]]) do
|
||||||
|
d=d..v.."\n"
|
||||||
|
end
|
||||||
|
d=d..d2
|
||||||
|
for i = 1, d:len(), 2048 do
|
||||||
|
component.invoke(ev[2],"send",ev[3],9671,d:sub(i,i+2047))
|
||||||
|
end
|
||||||
|
component.invoke(ev[2],"send",ev[3],9671,".")
|
||||||
|
end
|
||||||
|
C.yield()
|
||||||
|
end
|
||||||
|
end)) end)
|
Loading…
Reference in New Issue
Block a user