From 79987ae1a6d6929c01fd019c8a065e5fb3d2e2cb Mon Sep 17 00:00:00 2001 From: 1549469775 <1549469775@qq.com> Date: Wed, 13 Nov 2019 16:17:49 +0800 Subject: [PATCH] 'sa' --- app.js | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ git_util.js | 15 ++++-------- 2 files changed, 76 insertions(+), 17 deletions(-) diff --git a/app.js b/app.js index e99bc36..2d6456d 100644 --- a/app.js +++ b/app.js @@ -14,12 +14,25 @@ const haveGit = fs.existsSync('./.git'); * 2. 添加GIT源 * 3. 设置默认源以供一键上传 */ -// exec('git status', function (error, stdout, stderr) { -// let str = stdout.replace(/( |\\n)/g, ''); -// console.log(str); -// }) -// return + +function isClean() { + return new Promise((resolve, reject) => { + exec('git status', function (error, stdout, stderr) { + if (error) { + console.log(error); + reject(error); + return; + } + + let str = stdout.replace(/( |\\n)/g, ''); + console.log(str); + let isClean = str.indexOf('clean') != -1; + console.log(str.indexOf('clean') != -1); + resolve(isClean); + }) + }) +} function getBranch() { return new Promise((resolve, reject) => { @@ -55,6 +68,41 @@ function getBranch() { // 所有的源 let origin = stdout.split('\n').slice(0, stdout.split('\n').length - 1); console.log(origin); + if (origin.length == 0) { + inquirer.prompt([{ + type: 'input', // 问题类型,包括input,number,confirm,list,rawlist,password + name: 'name', + message: '源名字', // 问题 + default: '', // 默认值 + validate: (input) => { + if (input.length == 0) { + return '请输入源名字'; + } + return true; + } + }, { + type: 'input', // 问题类型,包括input,number,confirm,list,rawlist,password + name: 'url', + message: '源url', // 问题 + default: '', // 默认值 + validate: (input) => { + if (input.length == 0) { + return '请输入源url'; + } + return true; + } + }]).then(async answers => { + exec('git remote add ' + answers.name + ' ' + answers.url, function (error, stdout, stderr) { + if (error) { + console.log(error); + reject(error); + return; + } + console.log('添加成功'); + }) + }) + return; + } inquirer.prompt([{ type: 'confirm', // 问题类型,包括input,number,confirm,list,rawlist,password name: 'all', @@ -66,7 +114,12 @@ function getBranch() { let branch = await getBranch(); //当前分支 for (let i = 0; i < origin.length; i++) { const o = origin[i]; - await git_util.all('sa', o, branch); + let isclean = await isClean(); + if (!isclean) { + await git_util.all('sa', o, branch); + } else { + await git_util.push(o, branch); + } } } else { inquirer.prompt([{ @@ -75,8 +128,19 @@ function getBranch() { name: 'choices', message: '请选择一个源提交', // 问题 default: true // 默认值 - }]).then(answers => { + }]).then(async answers => { console.log(answers.choices); + let ooo = answers.choices; + let branch = await getBranch(); //当前分支 + for (let i = 0; i < ooo.length; i++) { + const o = ooo[i]; + let isclean = await isClean(); + if (!isclean) { + await git_util.all('sa', o, branch); + } else { + await git_util.push(o, branch); + } + } }) } }) diff --git a/git_util.js b/git_util.js index 1af3be9..fd7f24e 100644 --- a/git_util.js +++ b/git_util.js @@ -12,16 +12,8 @@ module.exports = { console.log("git commit -m '" + msg + "'"); exec("git commit -m '" + msg + "'", function (error, stdout, stderr) { if (error) { - // reject(error); - // console.log(error); - exec(banch ? "git push " + origin + " " + banch : "git push " + origin, function (error, stdout, stderr) { - if (error) { - reject(error); - console.log(error); - return; - } - resolve(); - }) + reject(error); + console.log(error); return; } console.log(banch ? "git push " + origin + " " + banch : "git push " + origin); @@ -38,12 +30,14 @@ module.exports = { }) }, commit(msg, origin, banch) { + console.log("git commit -m '" + msg + "'"); exec("git commit -m '" + msg + "'", function (error, stdout, stderr) { if (error) { reject(error); console.log(error); return; } + console.log(banch ? "git push " + origin + " " + banch : "git push " + origin); exec(banch ? "git push " + origin + " " + banch : "git push " + origin, function (error, stdout, stderr) { if (error) { reject(error); @@ -56,6 +50,7 @@ module.exports = { }, push(origin, banch) { return new Promise((resolve, reject) => { + console.log(banch ? "git push " + origin + " " + banch : "git push " + origin); exec(banch ? "git push " + origin + " " + banch : "git push " + origin, function (error, stdout, stderr) { if (error) { reject(error);