bia
Version:
a tool for download git repository
95 lines (93 loc) • 3.51 kB
JavaScript
/*
* @Author: hzxulin@yeah.net
* @Date: 2018-11-20 20:59:08
* @Last Modified by: hzxulin@yeah.net
* @Last Modified time: 2019-07-25 16:39:46
*/
const utils = require('./utils')
const question = require('./question')
module.exports = (cmd, opts) => {
switch (cmd) {
case 'list': {
question.askGitOperation().then(type => {
switch (type) {
case 'export': {
// 导出git模板
question.askExportPath().then(dist => {
return utils.exportExcel(dist)
}).then(dist => {
console.log(`git-tpl.xlsx is created successfully, the path is: ${dist}`)
}).catch(err => {
console.log(err)
})
break
}
case 'import': {
// 导入excel,批量创建
question.askImportExcel().then(file => {
return utils.importExcel(file)
}).then(list => {
return Promise.all(list.map(_v => {
return utils.createGitRepo(_v)
}))
}).then(res => {
res.forEach((_v) => {
console.log(`\n\t${_v.name}\turl: ${_v.web_url} \r`)
})
}).catch(err => {
console.log(err)
})
break
}
}
})
break
}
case 'config': {
utils.consoleToken().then(() => {
return question.askConfigOperation()
}).then(answer => {
switch (answer) {
case 'set': {
question.askTokenInput().then((res) => {
return utils.setGitToken(res)
}).then(() => {
console.log('\ngit token 已成功设置。 \r')
utils.consoleToken()
}).catch(err => {
console.log(err)
})
break
}
case 'clear': {
question.askTokenConfirm().then((res) => {
if (res) {
utils.setGitToken('').then(() => {
console.log('\n\tgit token 已清空。 \r')
utils.consoleToken()
}).catch(err => {
console.log(err)
})
}
})
break
}
}
}).catch(err => {
console.log(err)
})
break
}
case 'default':
default: {
question.askGitRepoInfo().then(answer => {
return utils.createGitRepo(answer)
}).then(newOpts => {
console.log(`\n\turl: ${newOpts.web_url} \r`)
}).catch(err => {
console.log(err)
})
break
}
}
}