@pubgcorp/pk-template
Version:
p template engine for kubernetes
142 lines • 14.1 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.initModule = exports.updateModule = exports.cloneModule = exports.MODULE_DIR = void 0;
const child_process_1 = require("child_process");
const preserveDir_1 = require("../pk-util/preserveDir");
const fs_1 = require("fs");
exports.MODULE_DIR = 'pk-modules';
const moduleInitialized = (moduleDir) => (0, fs_1.existsSync)(`${moduleDir}/.git`);
const cloneModule = (pkModule, isGlobal) => __awaiter(void 0, void 0, void 0, function* () {
return yield (0, preserveDir_1.preserveDir)(() => __awaiter(void 0, void 0, void 0, function* () {
const moduleDir = `${exports.MODULE_DIR}/${pkModule.name}`;
console.log('* cloning module ...');
const cmd = isGlobal
? `git clone ${pkModule.repository} ${moduleDir}`
: `git submodule add ${pkModule.repository} ${moduleDir}`;
console.log(cmd);
(0, child_process_1.execSync)(cmd);
process.chdir(moduleDir);
if (pkModule.branch) {
console.log(`* checking out branch ${pkModule.branch} ...`);
(0, child_process_1.execSync)(`git checkout ${pkModule.branch}`);
}
else if (pkModule.tag) {
console.log(`* checking out tag ${pkModule.tag} ...`);
(0, child_process_1.execSync)(`git checkout ${pkModule.tag}`);
}
const revision = (0, child_process_1.execSync)('git rev-parse HEAD').toString().trim();
const gitShaRegex = /^[0-9a-f]{40}$/;
if (gitShaRegex.test(revision)) {
console.log(`* marking current revision ${revision} to module config`);
pkModule.revision = revision;
console.log(`* checking out revision ${pkModule.revision} ...`);
(0, child_process_1.execSync)(`git checkout -f ${pkModule.revision}`);
}
if ((0, fs_1.existsSync)('package.json')) {
console.log('* updating npm modules');
(0, child_process_1.execSync)('npm install');
}
console.log(`* done`);
return pkModule;
}));
});
exports.cloneModule = cloneModule;
const updateModule = (pkModule) => __awaiter(void 0, void 0, void 0, function* () {
return yield (0, preserveDir_1.preserveDir)(() => {
const moduleDir = `${exports.MODULE_DIR}/${pkModule.name}`;
if (!moduleInitialized(moduleDir)) {
console.error('* Project modules are not initialized');
console.error(' Please type `pk module init` to initialize modules');
throw new Error('Modules Not Initialized');
}
process.chdir(moduleDir);
console.log('* fetching submodule ...');
const cmd = `git fetch --all`;
(0, child_process_1.execSync)(cmd);
if (pkModule.branch) {
console.log(`* checking out branch ${pkModule.branch} ...`);
(0, child_process_1.execSync)(`git reset --hard `);
(0, child_process_1.execSync)(`git checkout ${pkModule.branch}`);
(0, child_process_1.execSync)(`git reset --hard remotes/origin/${pkModule.branch}`);
//execSync(`git pull --ff-only`);
}
else if (pkModule.tag) {
console.log(`* checking out tag ${pkModule.tag} ...`);
(0, child_process_1.execSync)(`git reset --hard`);
(0, child_process_1.execSync)(`git checkout tags/${pkModule.tag}`);
}
const revision = (0, child_process_1.execSync)('git rev-parse HEAD').toString().trim();
const gitShaRegex = /^[0-9a-f]{40}$/;
if (gitShaRegex.test(revision)) {
console.log(`* marking current revision ${revision} to module config`);
pkModule.revision = revision;
console.log(`* checking out revision ${pkModule.revision} ...`);
(0, child_process_1.execSync)(`git checkout -f ${pkModule.revision}`);
}
if ((0, fs_1.existsSync)('package.json')) {
console.log('* updating npm modules');
(0, child_process_1.execSync)('npm install');
}
console.log(`* done`);
return pkModule;
});
});
exports.updateModule = updateModule;
const initModule = (pkModule, argv) => __awaiter(void 0, void 0, void 0, function* () {
return yield (0, preserveDir_1.preserveDir)(() => {
const moduleDir = `${exports.MODULE_DIR}/${pkModule.name}`;
if (!moduleInitialized(moduleDir)) {
console.log('* initialize submodule ...');
(0, child_process_1.execSync)('git submodule init');
(0, child_process_1.execSync)(`git submodule update ${moduleDir}`);
}
process.chdir(moduleDir);
if (!argv.noForceCheckout) {
console.log('* fetching submodule ...');
(0, child_process_1.execSync)('git fetch --all');
if (pkModule.revision) {
console.log(`* checking out revision ${pkModule.revision} ...`);
(0, child_process_1.execSync)(`git checkout -f ${pkModule.revision}`);
}
else {
if (pkModule.branch) {
console.log(`* checking out branch ${pkModule.branch} ...`);
(0, child_process_1.execSync)(`git reset --hard `);
(0, child_process_1.execSync)(`git checkout ${pkModule.branch}`);
(0, child_process_1.execSync)(`git reset --hard remotes/origin/${pkModule.branch}`);
//execSync(`git pull --ff-only`);
}
else if (pkModule.tag) {
console.log(`* checking out tab ${pkModule.tag} ...`);
(0, child_process_1.execSync)(`git reset --hard`);
(0, child_process_1.execSync)(`git checkout tags/${pkModule.tag}`);
}
const revision = (0, child_process_1.execSync)('git rev-parse HEAD').toString().trim();
const gitShaRegex = /^[0-9a-f]{40}$/;
if (gitShaRegex.test(revision)) {
console.log(`* marking current revision ${revision} to module config`);
pkModule.revision = revision;
console.log(`* checking out revision ${pkModule.revision} ...`);
(0, child_process_1.execSync)(`git checkout -f ${pkModule.revision}`);
}
}
}
if ((0, fs_1.existsSync)('package.json')) {
console.log('* updating npm modules');
(0, child_process_1.execSync)('npm install');
}
console.log(`* done`);
return pkModule;
});
});
exports.initModule = initModule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrLWNvbmYvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLGlEQUF5QztBQUN6Qyx3REFBcUQ7QUFDckQsMkJBQWdDO0FBRW5CLFFBQUEsVUFBVSxHQUFHLFlBQVksQ0FBQztBQUV2QyxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsSUFBQSxlQUFVLEVBQUMsR0FBRyxTQUFTLE9BQU8sQ0FBQyxDQUFBO0FBRXpFLE1BQU0sV0FBVyxHQUFHLENBQU8sUUFBbUIsRUFBRSxRQUFpQixFQUFzQixFQUFFO0lBQzlGLE9BQU8sTUFBTSxJQUFBLHlCQUFXLEVBQUMsR0FBUyxFQUFFO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLEdBQUcsa0JBQVUsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ25DLE1BQU0sR0FBRyxHQUFHLFFBQVE7WUFDbEIsQ0FBQyxDQUFDLGFBQWEsUUFBUSxDQUFDLFVBQVUsSUFBSSxTQUFTLEVBQUU7WUFDakQsQ0FBQyxDQUFDLHFCQUFxQixRQUFRLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsSUFBQSx3QkFBUSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWQsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsUUFBUSxDQUFDLE1BQU0sTUFBTSxDQUFDLENBQUM7WUFDNUQsSUFBQSx3QkFBUSxFQUFDLGdCQUFnQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUM3QzthQUFN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