const dbUtils = require("../../utils/dbUitls"); const {exec} = require("child_process"); const fse = require('fs-extra') const execute = cmd => new Promise((resolve, reject) => { exec(cmd, (err, stdout) => { if (!err) { console.log(stdout) resolve() } else reject(err) }) }) module.exports = { action: "/node/autodeploy/getZip", method: "post", execute: (request, response) => { let id = request.query?.id, sql = `select * from node_autodeploy where id='${id}'` dbUtils.query(sql).then(res => { let info = res?.[0] if (info?.id) { response.send({code: 0}) fse.emptyDir('../zips/' + info.id, err => { if (!err) { execute(`cd ../zips&&git clone ${info.git} ./${info.id}`) .then(() => execute(`cd ../zips/${info.id}&&git checkout ${info.branch}`)) .then(() => execute(`cd ../zips/${info.id}&&npm i&&npm run build`)) .catch(err => { console.log(err) }) } else { console.log(err) } }) } else response.send({code: 1, err: "无法找到git信息"}) }).catch(err => { console.log(err) response.send({code: 1, err: err.sqlMessage}) }) } }