@pubgcorp/pk-template
Version:
p template engine for kubernetes
69 lines • 5.99 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 });
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(void 0, void 0, void 0, function* () {
yield (0, libs_1.atProjectDir)((projectRoot, projectConf) => __awaiter(void 0, 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: (0, uuid_1.v4)(),
name: argv.appName,
};
projectConf.addApp(app);
(0, fs_1.existsSync)(app.name) || (0, 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 (0, libs_1.invokeModuleHooks)(pk, projectConf, 'app.add', { projectConf, app, pkt });
const yaml = (0, pk_yaml_1.dumpYamlAll)(pkt);
(0, fs_1.writeFileSync)(`${app.name}/app.pkt`, yaml, 'utf8');
projectConf_1.PkProjectConf.save(projectConf, '.');
}));
}),
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9way9jb21tYW5kcy9hcHAvYWRkQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDhEQUE2RDtBQUM3RCxxQ0FBNkQ7QUFDN0QsK0JBQWtDO0FBQ2xDLDJCQUEwRDtBQUMxRCw4Q0FBeUQ7QUFFekQsNERBQThEO0FBRTlELGtCQUFlLENBQUMsRUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QyxPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLElBQUksRUFBRSxlQUFlO0lBQ3JCLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSztJQUM5QixPQUFPLEVBQUUsQ0FBTyxJQUFTLEVBQUUsRUFBRTtRQUMzQixNQUFNLElBQUEsbUJBQVksRUFBQyxDQUFPLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtnQkFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLGFBQWEsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQsTUFBTSxHQUFHLEdBQUc7Z0JBQ1YsRUFBRSxFQUFFLElBQUEsU0FBSSxHQUFFO2dCQUNWLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTzthQUNuQixDQUFDO1lBRUYsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFBLGVBQVUsRUFBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBQSxjQUFTLEVBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTVDLE1BQU0sR0FBRyxHQUFHO2dCQUNWO29CQUNFLENBQUMsYUFBYSxDQUFDLEVBQUU7d0JBQ2YsR0FBRyxFQUFFLElBQUk7d0JBQ1QsT0FBTyxFQUFFLElBQUk7d0JBQ2IsU0FBUyxFQUFFLElBQUk7d0JBQ2YsVUFBVSxFQUFFLElBQUk7cUJBQ2pCO29CQUNELENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQ1gsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVU7d0JBQ3BFLFdBQVcsRUFBRSwyQkFBMkI7d0JBQ3hDLFVBQVUsRUFBRTs0QkFDVixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsR0FBRzs0QkFDNUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEdBQUc7NEJBQzVELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixHQUFHOzRCQUN0RSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsR0FBRzt5QkFDMUU7d0JBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUM7cUJBQzFDO2lCQUNGO2dCQUNEO29CQUNFLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsV0FBVztvQkFDakIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxJQUFJLDRCQUFlLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztxQkFDM0M7aUJBQ0Y7Z0JBQ0QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRTthQUN4QixDQUFDO1lBRUYsTUFBTSxJQUFBLHdCQUFpQixFQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBRS9FLE1BQU0sSUFBSSxHQUFHLElBQUEscUJBQVcsRUFBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixJQUFBLGtCQUFhLEVBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELDJCQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDIn0=