You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
const exec = require('child_process').exec;
|
|
module.exports = {
|
|
exec(command) {
|
|
return new Promise((resolve, reject) => {
|
|
exec(command, function (error, stdout, stderr) {
|
|
if (error) {
|
|
reject(error);
|
|
} else resolve(stdout);
|
|
})
|
|
})
|
|
},
|
|
_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;
|
|
resolve(isClean);
|
|
})
|
|
})
|
|
},
|
|
_getBranch() {
|
|
return new Promise((resolve, reject) => {
|
|
exec('git branch', function (error, stdout, stderr) {
|
|
if (error) {
|
|
reject(error);
|
|
return;
|
|
}
|
|
let branches = stdout.split('\n').slice(0, stdout.split('\n').length - 1);
|
|
branches = branches.filter(v => {
|
|
if (v.indexOf('*') != -1) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
})
|
|
let currentBranch = branches[0].slice(2);
|
|
resolve(currentBranch);
|
|
});
|
|
})
|
|
},
|
|
_getAllRemote() {
|
|
return new Promise((resolve, reject) => {
|
|
exec('git remote', function (error, stdout, stderr) {
|
|
if (error) {
|
|
reject(error);
|
|
return;
|
|
}
|
|
let origin = stdout.split('\n').slice(0, stdout.split('\n').length - 1);
|
|
resolve(origin)
|
|
})
|
|
})
|
|
}
|
|
}
|