UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

116 lines (115 loc) 4.65 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.execServer = exports.restartBuildServer = exports.stopBuildServer = exports.startBuildServer = exports.checkPackageDependency = void 0; const log_1 = require("diginext-utils/dist/xconsole/log"); const yargs_1 = __importDefault(require("yargs")); const app_config_1 = require("../../app.config"); const config_1 = require("../../config/config"); const const_1 = require("../../config/const"); const checkPackageDependency = async (pkg, cmd) => { const { execa, execaCommand, execaSync } = await Promise.resolve().then(() => __importStar(require("execa"))); try { const res = await execaCommand(pkg + " " + cmd, config_1.cliOpts); return res; } catch (e) { (0, log_1.logError)(`Package "${pkg}" is required to be installed.`); process.exit(1); } }; exports.checkPackageDependency = checkPackageDependency; const startBuildServer = async () => { const { execa, execaCommand, execaSync } = await Promise.resolve().then(() => __importStar(require("execa"))); // Check package dependencies: gcloud, kubectl, doctl, git, docker await (0, exports.checkPackageDependency)("gcloud", "--version"); await (0, exports.checkPackageDependency)("kubectl", "config view"); await (0, exports.checkPackageDependency)("doctl", "version"); await (0, exports.checkPackageDependency)("git", "--version"); await (0, exports.checkPackageDependency)(app_config_1.Config.BUILDER, "--version"); // switch working directory to CLI directory process.chdir(const_1.CLI_DIR); try { await execaCommand(`yarn start`); (0, log_1.logSuccess)(`Build server is up at: ${process.env.BASE_URL}`); } catch (e) { (0, log_1.logError)(e); } }; exports.startBuildServer = startBuildServer; const stopBuildServer = async () => { const { execa, execaCommand, execaSync } = await Promise.resolve().then(() => __importStar(require("execa"))); // switch working directory to CLI directory process.chdir(const_1.CLI_DIR); try { await execaCommand(`yarn stop`); (0, log_1.logSuccess)(`Build server has been stopped.`); } catch (e) { (0, log_1.logError)(e); } }; exports.stopBuildServer = stopBuildServer; const restartBuildServer = async () => { const { execa, execaCommand, execaSync } = await Promise.resolve().then(() => __importStar(require("execa"))); // switch working directory to CLI directory process.chdir(const_1.CLI_DIR); try { await execaCommand(`yarn stop`); } catch (e) { (0, log_1.log)(`Build server has not started yet.`); (0, log_1.log)(`Starting build server now...`); } try { await execaCommand(`yarn start`); return (0, log_1.logSuccess)(`Build server has been restarted.`); } catch (e) { return (0, log_1.logError)(e); } }; exports.restartBuildServer = restartBuildServer; const execServer = async (options) => { const { secondAction } = options; switch (secondAction) { case "up": case "start": return (0, exports.startBuildServer)(); case "down": case "stop": return (0, exports.stopBuildServer)(); case "restart": return (0, exports.restartBuildServer)(); default: yargs_1.default.showHelp(); break; } }; exports.execServer = execServer;