pk-template
Version:
p template engine for kubernetes
68 lines • 5.82 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 projectConf_1 = require("../../../pk-conf/projectConf");
const libs_1 = require("../../libs");
const uuid_1 = require("uuid");
const fs_1 = require("fs");
const pk_yaml_1 = require("../../../pk-yaml");
const customTags_1 = require("../../../pk-yaml/customTags");
exports.default = (pk) => ({
command: 'add <app-name>',
desc: 'add a new app',
builder: (yargs) => yargs,
handler: (argv) => __awaiter(this, void 0, void 0, function* () {
yield libs_1.atProjectDir((projectRoot, projectConf) => __awaiter(this, void 0, void 0, function* () {
if (!argv.appName.match(/^[a-zA-Z0-9]+$/)) {
throw new Error(`app name ${argv.appName} is invalid`);
}
const app = {
id: uuid_1.v4(),
name: argv.appName,
};
projectConf.addApp(app);
fs_1.existsSync(app.name) || fs_1.mkdirSync(app.name);
const pkt = [
{
['/properties']: {
env: null,
cluster: null,
namespace: null,
deployment: null,
},
['/schema']: {
title: `${argv.appName} in ${projectConf.data.project.name} project`,
description: `describe app details here`,
properties: {
env: { type: 'string', description: 'pk environment name', },
cluster: { type: 'string', description: 'pk cluster name', },
namespace: { type: 'string', description: 'prefered namespace name', },
deployment: { type: 'object', description: 'pk deployment information', },
},
required: ['env', 'cluster', 'namespace'],
}
},
{
apiVersion: 'v1',
kind: 'Namespace',
metadata: {
name: new customTags_1.CustomYamlJsTag('namespace', ''),
}
},
{ ['/comment']: '---' },
];
yield libs_1.invokeModuleHooks(pk, projectConf, 'app.add', { projectConf, app, pkt });
const yaml = pk_yaml_1.dumpYamlAll(pkt);
fs_1.writeFileSync(`${app.name}/app.pkt`, yaml, 'utf8');
projectConf_1.PkProjectConf.save(projectConf, '.');
}));
}),
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9way9jb21tYW5kcy9hcHAvYWRkQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsOERBQTZEO0FBQzdELHFDQUE2RDtBQUM3RCwrQkFBa0M7QUFDbEMsMkJBQTBEO0FBQzFELDhDQUF5RDtBQUV6RCw0REFBOEQ7QUFFOUQsa0JBQWUsQ0FBQyxFQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFLGVBQWU7SUFDckIsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0lBQzlCLE9BQU8sRUFBRSxDQUFPLElBQVMsRUFBRSxFQUFFO1FBQzNCLE1BQU0sbUJBQVksQ0FBQyxDQUFPLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtnQkFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLGFBQWEsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQsTUFBTSxHQUFHLEdBQUc7Z0JBQ1YsRUFBRSxFQUFFLFNBQUksRUFBRTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDbkIsQ0FBQztZQUVGLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsZUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTVDLE1BQU0sR0FBRyxHQUFHO2dCQUNWO29CQUNFLENBQUMsYUFBYSxDQUFDLEVBQUU7d0JBQ2YsR0FBRyxFQUFFLElBQUk7d0JBQ1QsT0FBTyxFQUFFLElBQUk7d0JBQ2IsU0FBUyxFQUFFLElBQUk7d0JBQ2YsVUFBVSxFQUFFLElBQUk7cUJBQ2pCO29CQUNELENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQ1gsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVU7d0JBQ3BFLFdBQVcsRUFBRSwyQkFBMkI7d0JBQ3hDLFVBQVUsRUFBRTs0QkFDVixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsR0FBRzs0QkFDNUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEdBQUc7NEJBQzVELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixHQUFHOzRCQUN0RSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsR0FBRzt5QkFDMUU7d0JBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUM7cUJBQzFDO2lCQUNGO2dCQUNEO29CQUNFLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsV0FBVztvQkFDakIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxJQUFJLDRCQUFlLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztxQkFDM0M7aUJBQ0Y7Z0JBQ0QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRTthQUN4QixDQUFDO1lBRUYsTUFBTSx3QkFBaUIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUUvRSxNQUFNLElBQUksR0FBRyxxQkFBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLGtCQUFhLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELDJCQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDIn0=