/** * * @authors Tony.Deng (dengtongyu123@163.com) * @date 2018-05-17 11:18:41 * @version $Id$ */ const run = require('exec-cmd'); const path = require('path'); let cmdPath = ''; exports.use = async (data, log4js, debug) => { if(debug) { cmdPath = '/Users/dengtongyu/www/glass-player'; }else{ cmdPath = '/var/local/githook/glass-player/'; } const logger = log4js.getLogger(path.parse(__filename).name); let build = false; let str = ''; for (let i = 0; i < data.commits.length; i++) { let add = data.commits[i].added; let rm = data.commits[i].removed; let mdf = data.commits[i].modified; if (add.length > 0) { for (let index = 0; index < add.length; index++) { build = checkPath(add[index]); if(build) { str = await buildPlayer(build, logger); return {str:str, build:build}; } } } if (mdf.length > 0) { for (let index = 0; index < mdf.length; index++) { build = checkPath(mdf[index]); if(build) { str = await buildPlayer(build, logger); return {str:str, build:build}; } } } if (rm.length > 0) { for (let index = 0; index < rm.length; index++) { build = checkPath(rm[index]); if(build) { str = await buildPlayer(build, logger); return {str:str, build:build}; } } } } str = '
本次提交没有src、public更新
'; return {str:str, build:build}; } checkPath = (path) => { let src = new RegExp('src/').test(path); let pub = new RegExp('public/').test(path); return (src || pub); } buildPlayer = async (build, logger) => { let str = ''; let cmd = await run('npm run build', { cwd: cmdPath }); if(cmd && cmd.length && cmd.length > 0) { let desc = cmd[0]; let code = cmd[1]; let buffer = cmd[2]; logger.info(desc, code); str = 'glassplayer构建完成!
'; }else{ str = 'glassplayer构建失败!
'; logger.info(str); } return str; }