UNPKG

@pubgcorp/pk-template

Version:
69 lines 5.99 kB
"use strict"; 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=