pk-template
Version:
p template engine for kubernetes
72 lines • 6.83 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
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 = path_1.join(root, module_1.MODULE_DIR, name, 'commands');
if (fs_1.existsSync(mcd)) {
const commands = 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(fs_1.readFileSync(path_1.join(dir, file), 'utf8'), file);
return {
command: `gen-${name}`,
desc: bindOption_1.buildCommandDescription(pkt.header),
builder: (yargs) => 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: 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);
}
}
}));
pk_writeutil_1.writeObject(patches);
}
}), !!argv.d);
})
};
};
const mgd = path_1.join(root, module_1.MODULE_DIR, name, 'generators');
if (fs_1.existsSync(mgd)) {
const pkts = 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsOENBQStDO0FBQy9DLCtCQUE0QjtBQUM1QiwyQkFBMkQ7QUFDM0Qsa0RBQThDO0FBQzlDLHVEQUFrRjtBQUlsRixTQUFnQixrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBWSxFQUFFLElBQVksRUFBRSxFQUFrQjtJQUMzRixNQUFNLEdBQUcsR0FBRyxXQUFJLENBQUMsSUFBSSxFQUFFLG1CQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELElBQUksZUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sUUFBUSxHQUFHLGdCQUFXLENBQUMsR0FBRyxDQUFDO2FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZEO0FBQ0gsQ0FBQztBQVRELGdEQVNDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsS0FBVSxFQUFFLElBQVksRUFBRSxJQUFZLEVBQUUsRUFBa0I7SUFFN0YsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFPLEVBQUUsR0FBVyxFQUFFLElBQVksRUFBRSxFQUFFO1FBQzFELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsTUFBTSxH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