UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

119 lines 5.26 kB
#!/usr/bin/env node "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 path_1 = require("path"); const colors = require("colors/safe"); const child_process_1 = require("child_process"); const fs_extra_1 = require("fs-extra"); const creating = (what, how = 'creating') => { console.log(colors.green('✓') + ` ${how} ${what}`); }; const notCreating = (what) => { console.log(colors.dim('-') + ' not creating ' + what); }; const tsconfig = { extends: './node_modules/@kui-shell/builder/tsconfig-base.json', references: [{ path: 'plugins/plugin-sample' }] }; const copyDirectory = (breadcrumb, target, force) => __awaiter(void 0, void 0, void 0, function* () { const targetExists = yield fs_extra_1.pathExists(target); if (!targetExists || force) { if (!targetExists) { yield fs_extra_1.mkdir(target); } const source = path_1.dirname(require.resolve(breadcrumb)); yield fs_extra_1.copy(source, target, { preserveTimestamps: true }); creating(target); } else { notCreating(target); } }); exports.main = (argv) => __awaiter(void 0, void 0, void 0, function* () { const force = !!argv.find(_ => _ === '-f' || _ === '--force'); if (!(yield fs_extra_1.pathExists('plugins'))) { yield fs_extra_1.mkdir('plugins'); creating('plugins directory'); } else { notCreating('plugins directory'); } if (!(yield fs_extra_1.pathExists('packages/app/src'))) { yield fs_extra_1.mkdirp('packages/app/src'); creating('packages/app/src directory'); } else { notCreating('packages/app/src directory'); } if (!(yield fs_extra_1.pathExists('packages/app/src/main.ts'))) { yield fs_extra_1.writeFile('packages/app/src/main.ts', '// intentionally blank'); creating('packages/app/src directory'); } else { notCreating('packages/app/src directory'); } if (!(yield fs_extra_1.pathExists('tsconfig.json'))) { yield fs_extra_1.writeFile('tsconfig.json', JSON.stringify(tsconfig, undefined, 2)); creating('tsconfig.json'); } else { notCreating('tsconfig.json'); } copyDirectory('@kui-shell/builder/examples/plugin-sample/package.json', 'plugins/plugin-sample', force); copyDirectory('@kui-shell/builder/examples/build-configs/default/theme/theme.json', 'theme', force); creating('reconfiguring package.json'); const pjson = require(path_1.join(__dirname, '../../../../package.json')); pjson.main = 'node_modules/@kui-shell/core/main/main.js'; if (!pjson.devDependencies) { pjson.devDependencies = {}; } pjson.devDependencies.mocha = '6.1.4'; pjson.devDependencies['@types/mocha'] = '5.2.7'; pjson.devDependencies['@types/node'] = '12.0.10'; pjson.devDependencies.electron = '6.0.8'; pjson.devDependencies.spectron = '8.0.0'; pjson.devDependencies.typescript = '3.6.3'; if (!pjson.dependencies) { pjson.dependencies = {}; } pjson.dependencies['@kui-shell/plugin-sample'] = 'file:./plugins/plugin-sample'; if (!pjson.scripts) { pjson.scripts = {}; } pjson.scripts.init = 'if [ ! -e node_modules/@kui-shell/prescan.json ]; then kui-compile; fi'; pjson.scripts.compile = 'kui-compile'; pjson.scripts.watch = 'tsc --build . --watch'; pjson.scripts['watch:webpack'] = 'kui-watch-webpack'; pjson.scripts['pty:rebuild'] = 'cd node_modules/node-pty-prebuilt-multiarch && npm run install'; pjson.scripts['pty:electron'] = 'if [ ! -e node_modules/node-pty-prebuilt-multiarch/.npmrc ]; then cp node_modules/@kui-shell/builder/npmrc node_modules/node-pty-prebuilt-multiarch/.npmrc && npm run pty:rebuild; fi'; pjson.scripts['pty:nodejs'] = 'if [ -e node_modules/node-pty-prebuilt-multiarch/.npmrc ]; then rm -f node_modules/node-pty-prebuilt-multiarch/.npmrc; npm run pty:rebuild; fi'; pjson.scripts.start = 'npm run -s init && npm run -s pty:electron && electron . shell'; yield fs_extra_1.writeFile('package.json', JSON.stringify(pjson, undefined, 2)); creating('npm install', 'running'); yield new Promise((resolve, reject) => { child_process_1.exec('npm install', (err, stdout, stderr) => { if (err) { console.error(err); reject(stderr); } else { resolve(); } }); }); }); exports.main(process.argv); //# sourceMappingURL=kui-dist-init.js.map