summaryrefslogtreecommitdiffstats
path: root/acf2/model/service.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-10-15 18:34:39 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-10-15 21:40:17 +0300
commit36c41b8bf5fef1ecd77c6bad1f882eccff959db4 (patch)
treecf6ca9dd04629ce2959de6c0e39a290527790e7f /acf2/model/service.lua
parent90177cda6335db5f08cb692f8981993ef51b4ee4 (diff)
downloadaconf-36c41b8bf5fef1ecd77c6bad1f882eccff959db4.tar.bz2
aconf-36c41b8bf5fef1ecd77c6bad1f882eccff959db4.tar.xz
reload service configuration on commit
Diffstat (limited to 'acf2/model/service.lua')
-rw-r--r--acf2/model/service.lua18
1 files changed, 13 insertions, 5 deletions
diff --git a/acf2/model/service.lua b/acf2/model/service.lua
index 2b9719a..2ed84e8 100644
--- a/acf2/model/service.lua
+++ b/acf2/model/service.lua
@@ -4,16 +4,24 @@ See LICENSE file for license details
--]]
local model = require('acf2.model.model')
+local super = require('acf2.object').super
+local DataStore = require('acf2.persistence')
return function(name)
local res = model.new()
+ local function afunc(action)
+ return function() os.execute('rc-service '..name..' '..action) end
+ end
+
+ local reload = afunc('reload')
+ function res:init(context)
+ DataStore:trigger(context.addr, reload)
+ super(self, res):init(context)
+ end
+
for _, action in ipairs{'start', 'stop', 'restart'} do
- res[action] = model.Action{
- func=function()
- os.execute('rc-service '..name..' '..action)
- end
- }
+ res[action] = model.Action{func=afunc(action)}
end
return res