diff --git a/plugin/ssh/router.coffee b/plugin/ssh/router.coffee index a46c5fb..a1eba41 100644 --- a/plugin/ssh/router.coffee +++ b/plugin/ssh/router.coffee @@ -4,25 +4,19 @@ module.exports = exports = express.Router() +ssh = require './ssh' + exports.use requireInService 'ssh' exports.post '/update_password', (req, res) -> unless /^.+$/.test req.body.password return res.error 'invalid_password' - - chpasswd = child_process.spawn 'sudo', ['chpasswd'] - chpasswd.stdin.end "#{req.account.username}:#{req.body.password}" - - chpasswd.on 'error', logger.error - - chpasswd.on 'exit', -> + + ssh.updatePassword req.account, req.body.password, -> res.json {} exports.post '/kill', (req, res) -> pid = parseInt req.body.pid - child_process.exec "sudo su #{req.account.username} -c 'kill #{pid}'", (err) -> - logger.error err if err - - cache.delete 'linux.getProcessList', -> - res.json {} + ssh.killProcess req.account, pid, -> + res.json {} diff --git a/plugin/ssh/ssh.coffee b/plugin/ssh/ssh.coffee new file mode 100644 index 0000000..02299bb --- /dev/null +++ b/plugin/ssh/ssh.coffee @@ -0,0 +1,18 @@ +{child_process} = app.libs +{cache, logger} = app + +exports.updatePassword = (account, password, callback) -> + chpasswd = child_process.spawn 'sudo', ['chpasswd'] + chpasswd.stdin.end "#{account.username}:#{password}" + + chpasswd.on 'error', logger.error + + chpasswd.on 'exit', -> + callback() + +exports.killProcess = (account, pid, callback) -> + child_process.exec "sudo su #{account.username} -c 'kill #{pid}'", (err) -> + logger.error err if err + + cache.delete 'linux.getProcessList', -> + callback() diff --git a/plugin/supervisor/index.coffee b/plugin/supervisor/index.coffee index 08a25f8..f594c36 100644 --- a/plugin/supervisor/index.coffee +++ b/plugin/supervisor/index.coffee @@ -12,7 +12,9 @@ exports.registerHook 'view.panel.scripts', exports.registerHook 'view.panel.widgets', generator: (req, callback) -> - exports.render 'widget', req, {}, callback + exports.render 'widget', req, + programSummary: supervisor.programSummary + , callback exports.registerServiceHook 'enable', filter: (req, callback) ->