diff --git a/routes/index.js b/routes/index.js index 907af50..3077c5d 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,26 +1,27 @@ var express = require('express'); var router = express.Router(); -const { exec } = require('child_process'); //web钩子事件 //git@gogs.kirito.cool:panqihua/RiskCloudMock.git push事件 +const {spawn} = require('child_process'); router.post('/server', function(req, res, next) { const updated_at=req.body.repository.updated_at - const shell='nohup updateRisk RiskCloudMock &' -// 输出当前目录(不一定是代码所在的目录)下的文件和文件夹 - console.log(`开始执行shell:${shell}`) - exec(shell, (err, stdout, stderr) => { - if(err) { - console.log(err) - res.json({message:'自动部署服务端失败'}) - }else { - console.log(stdout) - res.json({message: `开始自动部署服务端,版本号:${updated_at}`}) - } - + console.info('调用自动部署命令') + const spawnObj = spawn('updateRisk', ['RiskCloudMock'], {encoding: 'utf-8'}); + spawnObj.stdout.on('data', function(chunk) { + console.log(chunk.toString()); + }); + spawnObj.stderr.on('data', (data) => { + console.log(data); + }); + spawnObj.on('close', function(code) { + console.log('close code : ' + code); + }) + spawnObj.on('exit', (code) => { + console.log('exit code : ' + code); + res.json({message: `仓库代码${req.query.name}部署成功`}) }) - });