navy
Version:
Quick and powerful development environments using Docker and Docker Compose
61 lines (49 loc) • 2.06 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _chalk = _interopRequireDefault(require("chalk"));
var _ = require("../");
var _table = _interopRequireDefault(require("../util/table"));
var _config = require("../config");
function formatNavyName(navy, defaultNavy) {
if (navy.name === defaultNavy) {
return `${navy.name} ${_chalk.default.cyan('(default)')}`;
}
return navy.name;
}
async function _default(opts) {
const navies = await (0, _.getLaunchedNavies)();
if (opts.json) {
return console.log(JSON.stringify(await Promise.all(navies.map(async navy => {
const ps = await navy.ps();
const state = await navy.getState();
const configProvider = await navy.getConfigProvider();
const isActive = ps.reduce((active, service) => active || service.status === 'running', false);
return {
name: navy.name,
isActive,
services: ps,
state,
configProvider: state.configProvider,
configLocation: await configProvider.getLocationDisplayName(),
url: await navy.url('[service]')
};
})), null, 2));
}
const config = await (0, _config.getConfig)();
const {
defaultNavy
} = config;
const rows = await Promise.all(navies.map(async navy => {
const ps = await navy.ps();
const state = await navy.getState();
const configProvider = await navy.getConfigProvider();
const isActive = ps.reduce((active, service) => active || service.status === 'running', false);
return [formatNavyName(navy, defaultNavy), isActive ? _chalk.default.green('yes') : _chalk.default.red('no'), ps.length.toString(), state.configProvider, await configProvider.getLocationDisplayName(), await navy.url(_chalk.default.dim('service'))];
}));
console.log((0, _table.default)([['NAME', 'ACTIVE', 'SERVICES', 'CONFIG PROVIDER', 'CONFIG LOCATION', 'URL'], ...rows]));
}
module.exports = exports.default;