summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrebecca <ubq323@ubq323.website>2026-09-26 19:17:36 +0100
committerrebecca <ubq323@ubq323.website>2026-09-26 19:17:36 +0100
commit974b9adbc8759a4a2a32787f0314ab178995a32c (patch)
tree3f6e2b5065cca387504122a15c8653d00116e18d
parentdbf2436f133ffeb6ac08f1b55d7f9c60edd4b683 (diff)
add hup loop
-rw-r--r--main.lua14
1 files changed, 12 insertions, 2 deletions
diff --git a/main.lua b/main.lua
index 3e47b13..103a18c 100644
--- a/main.lua
+++ b/main.lua
@@ -1,4 +1,5 @@
local cqueues = require'cqueues'
+local signal = require'cqueues.signal'
local class = require'r.class'
local pprint = require'pprint'
@@ -46,9 +47,8 @@ function Wilson.make(cls, conf)
return self
end
-function Wilson.add_channels_for(self, pylon, busses)
+function Wilson.add_channels_for(self, pylon)
if not pylon.channels then return end
- busses = busses or self.busses
for busname, bus in pairs(busses) do
for _, channel in ipairs(bus) do
if channel.pylon == pylon
@@ -77,9 +77,19 @@ function Wilson.run(self)
self.log("now running pylon", pylonname)
end
self.cq:wrap(self.store.run, self.store)
+ self.cq:wrap(self.hup, self)
self.log:loop(self.cq)
end
+function Wilson.hup(self)
+ signal.block(signal.SIGHUP)
+ local sl = signal.listen(signal.SIGHUP)
+ while true do
+ local s = sl:wait()
+ self:reload_config()
+ end
+end
+
local config_file = assert(io.open("wilson.ini","r"))
local conf = config.parse(config_file)
config_file:close()