diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-10-15 18:34:39 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-10-15 21:40:17 +0300 |
commit | 36c41b8bf5fef1ecd77c6bad1f882eccff959db4 (patch) | |
tree | cf6ca9dd04629ce2959de6c0e39a290527790e7f /acf2/model/service.lua | |
parent | 90177cda6335db5f08cb692f8981993ef51b4ee4 (diff) | |
download | aconf-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.lua | 18 |
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 |