comb-cli
Version:
comb cli
58 lines (56 loc) • 1.97 kB
JavaScript
const fs = require('fs');
const path = require('path');
const process = require('process');
const rootPath = process.cwd();
require('shelljs/global');
require('colors');
const downLoadGit = require('../lib/downLoadGit.js');
/**
* @param opt.gitUrl 框架git地址
* @param opt.version 框架版本号
* @param opt.tempDir 临时存放路径
*/
module.exports = function downLoadFrame (opt) {
return new Promise ((resolve, reject) => {
const folderName = path.parse(opt.gitUrl).name;
const framePath = path.resolve(rootPath, opt.tempDir, folderName);
const tempDir = path.resolve(rootPath, opt.tempDir);
const targetDir = path.resolve(tempDir, '../');
echo('开始下载框架!'.yellow);
downLoadGit(opt).then(() => {
echo('框架下载完成!'.green);
echo('拷贝文件夹'.yellow);
opt.folder.forEach((folder) => {
const source = path.join(framePath, folder);
if (!test('-d', source)){
mkdir('-p', source);
}
try {
cp('-rf', source, targetDir);
} catch (err) {
echo(err.red);
}
});
echo('done'.green);
echo('拷贝框架文件'.yellow);
opt.files.forEach((file) => {
const source = path.join(framePath, file);
try {
cp(source, targetDir);
} catch (err) {
echo(err.red);
}
});
echo('done'.green);
echo('删除框架临时文件'.yellow);
cd(targetDir);
rm('-rf', tempDir); // 移除框架下载临时目录
echo('done'.green);
resolve();
}).catch((err) => {
echo('框架下载失败:' + err);
reject(err);
});
});
}