@beisen/bscpm
Version:
56 lines (46 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _yeomanGenerator = require('yeoman-generator');
var _yeomanGenerator2 = _interopRequireDefault(_yeomanGenerator);
var _child_process = require('child_process');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = class extends _yeomanGenerator2.default {
writing() {
let { registries, dir } = this.options;
registries = registries.split(',').map(registry => ({
'git': registry,
'name': ''
}));
gitclone(registries, dir);
}
};
const gitclone = (clone = [], path) => {
if (path && !_fs2.default.existsSync(path)) {
_fs2.default.mkdirSync(path);
}
process.chdir(path);
const promises = clone.map(item => {
return new Promise((resolve, reject) => {
let cp_g = (0, _child_process.spawn)('git', ['clone', item.git]);
cp_g.on('close', data => {
//删除.git文件
(0, _child_process.execSync)('rm -rf .git .gitignore', { cwd: item.git.split('/')[1].split('.')[0] });
//给文件改名
if (item.name) {
_fs2.default.rename(item.git.split('/')[1].split('.')[0], item.name, function (err) {
if (err) console.log('ERROR: ' + err);
});
}
return resolve(data);
});
});
});
Promise.all(promises).then(() => console.log('All Components Pushed.')).catch(() => {
throw new Error();
});
};
module.exports = exports['default'];