jgb-cli
Version:
```shell npm i -g jgb-cli #全局安装 ```
84 lines • 5.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var chalk_1 = require("chalk");
var crypto = require("crypto");
var downloadRepo = require("download-git-repo");
var fs = require("fs");
var Logger_1 = require("jgb-shared/lib/Logger");
var path = require("path");
var rimraf = require("rimraf");
var home = require("user-home");
function downloadAndGenerate(template, tmp, clone) {
if (clone === void 0) { clone = false; }
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
console.log(chalk_1.default.gray('downloading template ...'));
if (!fs.existsSync(tmp)) return [3 /*break*/, 2];
return [4 /*yield*/, new Promise(function (resolve) {
rimraf(tmp, resolve);
})];
case 1:
_a.sent();
_a.label = 2;
case 2: return [2 /*return*/, new Promise(function (resolve) {
console.log(chalk_1.default.gray("template: " + template));
downloadRepo(template, tmp, { clone: clone }, function (err) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
if (err) {
Logger_1.logger.error('Failed to download repo ' + template + ': ' + err.message.trim());
return [2 /*return*/, resolve()];
}
resolve();
return [2 /*return*/];
});
}); });
})];
}
});
});
}
exports.downloadAndGenerate = downloadAndGenerate;
/**
* 生成MD5临时文件路径
* @param template
*/
function generateMD5TemplatePath(template) {
return generateTemplatePath(md5(template));
}
exports.generateMD5TemplatePath = generateMD5TemplatePath;
/**
* 生成临时文件路径
* @param template
*/
function generateTemplatePath(template) {
return path.join(home, '.jgb_templates', template);
}
exports.generateTemplatePath = generateTemplatePath;
function isLocalPath(templatePath) {
// templatePath example:
// .jgb_templates
// E:\workspace\jgb_templates\standard
return /^[./]|(^[a-zA-Z]:)/.test(templatePath);
}
exports.isLocalPath = isLocalPath;
/**
* 获取临时文件路径
* @param templatePath
*/
function getTemplatePath(templatePath) {
return path.isAbsolute(templatePath)
? templatePath
: path.normalize(path.join(process.cwd(), templatePath));
}
exports.getTemplatePath = getTemplatePath;
function md5(str) {
var hash = crypto.createHash('md5');
hash.update(str);
return hash.digest('hex');
}
exports.md5 = md5;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3RlbXBsYXRlRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBMEI7QUFDMUIsK0JBQWlDO0FBQ2pDLGdEQUFrRDtBQUNsRCx1QkFBeUI7QUFDekIsZ0RBQStDO0FBRS9DLDJCQUE2QjtBQUM3QiwrQkFBaUM7QUFDakMsZ0NBQWtDO0FBRWxDLFNBQXNCLG1CQUFtQixDQUN2QyxRQUFnQixFQUNoQixHQUFXLEVBQ1gsS0FBc0I7SUFBdEIsc0JBQUEsRUFBQSxhQUFzQjs7Ozs7O29CQUV0QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO3lCQUVoRCxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFsQix3QkFBa0I7b0JBQ3BCLHFCQUFNLElBQUksT0FBTyxDQUFDLFVBQUEsT0FBTzs0QkFDdkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDdkIsQ0FBQyxDQUFDLEVBQUE7O29CQUZGLFNBRUUsQ0FBQzs7d0JBR0wsc0JBQU8sSUFBSSxPQUFPLENBQUMsVUFBQSxPQUFPO3dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsZUFBYSxRQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUNqRCxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssT0FBQSxFQUFFLEVBQUUsVUFBTSxHQUFHOztnQ0FDOUMsSUFBSSxHQUFHLEVBQUU7b0NBQ1AsZUFBTSxDQUFDLEtBQUssQ0FDViwwQkFBMEIsR0FBRyxRQUFRLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQ2xFLENBQUM7b0NBQ0Ysc0JBQU8sT0FBTyxFQUFFLEVBQUM7aUNBQ2xCO2dDQUNELE9BQU8sRUFBRSxDQUFDOzs7NkJBQ1gsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxFQUFDOzs7O0NBQ0o7QUF6QkQsa0RBeUJDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsUUFBZ0I7SUFDdEQsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRkQsMERBRUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxRQUFnQjtJQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFGRCxvREFFQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxZQUFvQjtJQUM5Qyx3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLHNDQUFzQztJQUN0QyxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBTEQsa0NBS0M7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQUMsWUFBb0I7SUFDbEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUNsQyxDQUFDLENBQUMsWUFBWTtRQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUpELDBDQUlDO0FBRUQsU0FBZ0IsR0FBRyxDQUFDLEdBQVc7SUFDN0IsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBSkQsa0JBSUMifQ==