fe-real-cli
Version:
FE脚手架CLI工具
66 lines (50 loc) • 2.44 kB
JavaScript
;
var _child_process = require('child_process');
var _child_process2 = _interopRequireDefault(_child_process);
var _logSymbols = require('log-symbols');
var _logSymbols2 = _interopRequireDefault(_logSymbols);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _ora = require('ora');
var _ora2 = _interopRequireDefault(_ora);
var _util = require('./util.js');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const util = require("util");
const exec = util.promisify(require("child_process").exec);
let init = async (username, token) => {
try {
await loadCmd(`git init`, 'git初始化');
if (username === '' || token === '') {
console.log(_logSymbols2.default.warning, _chalk2.default.yellow('缺少入参无法创建远端仓库'));
} else {
const projectName = process.cwd().split('/').slice(-1)[0];
await loadCmd(`curl -u "${username}:${token}" https://api.github.com/user/repos -d '{"name": "${projectName}"}'`, 'Github仓库创建');
await loadCmd(`git remote add origin https://github.com/${username}/${projectName}.git`, '关联远端仓库');
let loading = (0, _ora2.default)();
loading.start(`package.json更新repository: 命令执行中...`);
await (0, _util.updateJsonFile)('package.json', {
"repository": {
"type": "git",
"url": `https://github.com/${username}/${projectName}.git`
}
}).then(() => {
loading.succeed(`package.json更新repository: 命令执行完成`);
});
await loadCmd(`git add .`, '执行git add');
await loadCmd(`git commit -a -m 'init'`, '执行git commit');
await loadCmd(`git push --set-upstream origin master`, '执行git push');
}
await loadCmd(`npm install`, '安装依赖');
} catch (err) {
console.log(_logSymbols2.default.error, _chalk2.default.red('初始化失败'));
console.log(_logSymbols2.default.error, _chalk2.default.red(err));
process.exit(1);
}
};
let loadCmd = async (cmd, text) => {
let loading = (0, _ora2.default)();
loading.start(`${text}: 命令执行中...`);
await exec(cmd);
loading.succeed(`${text}: 命令执行完成`);
};
module.exports = init;