97 lines
1.9 KiB
JavaScript
97 lines
1.9 KiB
JavaScript
/**
|
|
*
|
|
* @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 = '<p>本次提交没有src、public更新</p>';
|
|
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 = '<p>glassplayer构建完成!</p>';
|
|
}else{
|
|
str = '<p>glassplayer构建失败!</p>';
|
|
logger.info(str);
|
|
}
|
|
|
|
return str;
|
|
} |