@pubgcorp/pk-template
Version:
p template engine for kubernetes
74 lines • 7.12 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.loadModuleGenerators = exports.loadModuleCommands = void 0;
const module_1 = require("../pk-conf/module");
const path_1 = require("path");
const fs_1 = require("fs");
const pk_writeutil_1 = require("../pk-writeutil");
const bindOption_1 = require("../pk-yargs/bindOption");
function loadModuleCommands(yargs, root, name, pk) {
const mcd = (0, path_1.join)(root, module_1.MODULE_DIR, name, 'commands');
if ((0, fs_1.existsSync)(mcd)) {
const commands = (0, fs_1.readdirSync)(mcd)
.filter(file => file.endsWith('.js'))
.map(file => require(`${mcd}/${file}`));
commands.forEach(cmdgen => yargs.command(cmdgen(pk)));
}
}
exports.loadModuleCommands = loadModuleCommands;
function loadModuleGenerators(yargs, root, name, pk) {
const buildCommand = (pk, dir, file) => {
const name = file.substr(0, file.length - 4);
const pkt = pk.compilePkt((0, fs_1.readFileSync)((0, path_1.join)(dir, file), 'utf8'), file);
return {
command: `gen-${name}`,
desc: (0, bindOption_1.buildCommandDescription)(pkt.header),
builder: (yargs) => (0, bindOption_1.bindYargsOption)(yargs, pkt.header)
.options('dry', { description: 'dry run this command' }),
handler: (argv) => __awaiter(this, void 0, void 0, function* () {
yield pk.tryCatch(() => __awaiter(this, void 0, void 0, function* () {
const result = pk.generate({
file: (0, path_1.join)(dir, file),
values: argv,
});
if (argv.dry) {
console.log(pk.yaml.dumpYamlAll(result));
}
else {
const patches = result.map((o) => ({
type: 'yamlAll',
file: 'app.pkt',
func: (obj) => {
const idx = obj.findIndex((r) => r['/comment'] == '---');
if (idx == -1) {
obj.push(o);
}
else {
obj.splice(idx, 0, o);
}
}
}));
(0, pk_writeutil_1.writeObject)(patches);
}
}), !!argv.d);
})
};
};
const mgd = (0, path_1.join)(root, module_1.MODULE_DIR, name, 'generators');
if ((0, fs_1.existsSync)(mgd)) {
const pkts = (0, fs_1.readdirSync)(mgd)
.filter(file => file.endsWith('.pkt'));
pkts.forEach(fn => yargs.command(buildCommand(pk, mgd, fn)));
}
}
exports.loadModuleGenerators = loadModuleGenerators;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBK0M7QUFDL0MsK0JBQTRCO0FBQzVCLDJCQUEyRDtBQUMzRCxrREFBOEM7QUFDOUMsdURBQWtGO0FBSWxGLFNBQWdCLGtCQUFrQixDQUFDLEtBQVUsRUFBRSxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQWtCO0lBQzNGLE1BQU0sR0FBRyxHQUFHLElBQUEsV0FBSSxFQUFDLElBQUksRUFBRSxtQkFBVSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRCxJQUFJLElBQUEsZUFBVSxFQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUEsZ0JBQVcsRUFBQyxHQUFHLENBQUM7YUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkQ7QUFDSCxDQUFDO0FBVEQsZ0RBU0M7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFVLEVBQUUsSUFBWSxFQUFFLElBQVksRUFBRSxFQUFrQjtJQUU3RixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQU8sRUFBRSxHQUFXLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMs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