t-comm
Version:
专业、稳定、纯粹的工具库
51 lines (46 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var node_nodeCommand = require('../node/node-command.js');
var nodejs_path = require('../nodejs/path.js');
var git_ssh = require('./ssh.js');
require('@babel/runtime/helpers/typeof');
require('../nodejs/child_process.js');
/**
* 根据配置表,重新 clone 仓库
* @param {Array<item>} list 列表
* @param {string} item.root 路径
* @param {string} item.origin origin
* @example
* ```ts
* reCloneGitRemote([
* {
* root: '/Users/foo/Documents/git/t-comm',
* origin: 'https://github.com/novlan1/t-comm',
* },
* {
* root: '/Users/foo/Documents/git/api',
* origin: 'git@git.woa.com:pmd-mobile/pmd-h5/api.git',
* },
* ]);
* // 会先 rm -rf 目标目录,再用 ssh 协议重新 clone
* ```
*/
function reCloneGitRemote() {
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
list.forEach(function (item) {
var root = item.root,
origin = item.origin;
var realOrigin = git_ssh.transformGitToSSH(origin.trim());
console.log('[reCloneGitRemote] root: ', root);
console.log('[reCloneGitRemote] origin: ', realOrigin);
node_nodeCommand.execCommand("rm -rf ".concat(root));
var dir = nodejs_path.getPath().dirname(root);
console.log('[reCloneGitRemote] dir: ', dir);
try {
node_nodeCommand.execCommand("git clone ".concat(realOrigin), dir, 'inherit');
} catch (err) {
console.log('[reCloneGitRemote] err: ', err);
}
});
}
exports.reCloneGitRemote = reCloneGitRemote;