UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

52 lines (41 loc) 1.65 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _inquirer = _interopRequireDefault(require("inquirer")); var _util = require("./util"); var _driverLogging = require("../driver-logging"); const SELECTED_WEIGHT = 100; // make sure selected services appear at the top async function _default(services, opts) { const navy = await (0, _util.getOrInitialiseNavy)(opts.navy); const navyFile = (await navy.getNavyFile()) || {}; await navy.ensurePluginsLoaded(); const serviceNames = await navy.getAvailableServiceNames(); const launchedServiceNames = await navy.getLaunchedServiceNames(); const selectedServiceNames = launchedServiceNames.length > 0 ? launchedServiceNames : navyFile.launchDefaults || []; if (!services || services.length === 0) { const choices = serviceNames.sort(name => selectedServiceNames.indexOf(name) === -1 ? SELECTED_WEIGHT : -1).map(name => ({ name, checked: selectedServiceNames.indexOf(name) !== -1 })); const { services: selectedServices } = await _inquirer.default.prompt([{ type: 'checkbox', message: 'Select services that you\'d like to bring up', name: 'services', choices }]); services = selectedServices; } if (services.length === 0) { return; } await navy.emitAsync('cli.before.launch'); (0, _driverLogging.startDriverLogging)('Launching services...'); await navy.launch(services); (0, _driverLogging.stopDriverLogging)(); } module.exports = exports.default;