pk-template
Version:
p template engine for kubernetes
81 lines • 6.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const pk_yaml_1 = require("../pk-yaml");
const bindOption_1 = require("../pk-yargs/bindOption");
class ArgsBuilder {
expandValues(values) {
Object.keys(values).forEach(k => {
if (k.endsWith('@')) {
const path = values[k];
const value = pk_yaml_1.loadYamlFile(path);
delete values[k];
values[k.substr(0, k.length - 1)] = value;
}
});
return values;
}
filterValues(argv) {
const values = {};
Object.keys(argv).forEach(k => {
if (k[0] != '$' && k.length > 1) {
values[k] = argv[k];
}
});
return values;
}
buildValues(argv) {
const values = this.expandValues(this.filterValues(argv));
delete values._;
return values;
}
buildOptions(yargv) {
const options = {};
if (yargv.i)
options.stdin = true;
if (yargv.j)
options.json = true;
if (yargv.d)
options.debug = true;
if (yargv.v)
options.version = true;
if (yargv.h)
options.help = true;
return options;
}
build(argv) {
const baseOption = (argv) => {
return require('yargs/yargs')(argv)
.scriptName("pkt")
.option('i', { description: 'read yaml initial objects from stdin', boolean: true })
.option('j', { description: 'json output', boolean: true })
.option('d', { description: 'show nodejs errors and callstacks', boolean: true })
.option('v', { description: 'show version', boolean: true })
.option('h', { description: 'show help', boolean: true })
.version(false)
.help(false);
};
let yargs = baseOption(argv).usage('pkt file');
let yargv = yargs.argv;
if (yargv._.length === 1) {
const file = yargv._[0];
const pkt = pk_yaml_1.parseYamlAsPkt(file, file);
yargs = bindOption_1.bindYargsOption(baseOption(argv), pkt);
const desc = bindOption_1.buildCommandDescription(pkt);
let usage = desc
? `pkt ${file} - ${desc}`
: `pkt ${file}`;
yargs.usage(usage);
yargv = yargs.argv;
}
if (yargv.h || yargv._.length !== 1) {
yargs.showHelp();
process.exit(0);
}
const file = yargv._[0];
const values = this.buildValues(yargv);
const options = this.buildOptions(yargv);
return { options, values, file, env: options.env };
}
}
exports.ArgsBuilder = ArgsBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wa3QvYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLHdDQUEwRDtBQUMxRCx1REFBa0Y7QUFVbEYsTUFBYSxXQUFXO0lBQ2QsWUFBWSxDQUFDLE1BQWU7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sS0FBSyxHQUFHLHNCQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRWpDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUMzQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFTO1FBQzVCLE1BQU0sTUFBTSxHQUFZLEVBQUUsQ0FBQTtRQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLE1B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