mirror of
https://github.com/kepler155c/opus
synced 2025-10-16 08:17:40 +00:00
transition to kernel
This commit is contained in:
@@ -4,7 +4,7 @@ local Peripheral = require('peripheral')
|
||||
|
||||
_G.device = Peripheral.getList()
|
||||
|
||||
_G.device.terminal = _G.term.current()
|
||||
_G.device.terminal = _G.kernel.terminal.parent
|
||||
_G.device.terminal.side = 'terminal'
|
||||
_G.device.terminal.type = 'terminal'
|
||||
_G.device.terminal.name = 'terminal'
|
42
sys/extensions/3.netdaemon.lua
Normal file
42
sys/extensions/3.netdaemon.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
_G.requireInjector()
|
||||
|
||||
local Event = require('event')
|
||||
local Util = require('util')
|
||||
|
||||
_G.network = { }
|
||||
|
||||
local device = _G.device
|
||||
local fs = _G.fs
|
||||
local network = _G.network
|
||||
local os = _G.os
|
||||
local printError = _G.printError
|
||||
|
||||
if not device.wireless_modem then
|
||||
return
|
||||
end
|
||||
|
||||
print('Net daemon started')
|
||||
|
||||
for _,file in pairs(fs.list('sys/network')) do
|
||||
local fn, msg = Util.run(_ENV, 'sys/network/' .. file)
|
||||
if not fn then
|
||||
printError(msg)
|
||||
end
|
||||
end
|
||||
|
||||
Event.on('device_detach', function()
|
||||
if not device.wireless_modem then
|
||||
Event.exitPullEvents()
|
||||
end
|
||||
end)
|
||||
|
||||
Event.pullEvents()
|
||||
|
||||
for _,c in pairs(network) do
|
||||
c.active = false
|
||||
os.queueEvent('network_detach', c)
|
||||
end
|
||||
os.queueEvent('network_down')
|
||||
Event.pullEvent('network_down')
|
||||
|
||||
Util.clear(network)
|
11
sys/extensions/3.network.lua
Normal file
11
sys/extensions/3.network.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
local kernel = _G.kernel
|
||||
|
||||
kernel.hook('device_attach', function(_, eventData)
|
||||
if eventData[1] == 'wireless_modem' then
|
||||
kernel.run({
|
||||
title = 'Net daemon',
|
||||
path = 'sys/extensions/netdaemon.lua',
|
||||
hidden = true,
|
||||
})
|
||||
end
|
||||
end)
|
@@ -1,13 +0,0 @@
|
||||
local kernel = _G.kernel
|
||||
|
||||
_G.network = { }
|
||||
|
||||
kernel.hook('device_attach', function(_, eventData)
|
||||
if eventData[1] == 'wireless_modem' then
|
||||
local routine = kernel.newRoutine({
|
||||
path = 'sys/services/network.lua',
|
||||
hidden = true
|
||||
})
|
||||
kernel.run(routine)
|
||||
end
|
||||
end)
|
Reference in New Issue
Block a user