navy
Version:
Quick and powerful development environments using Docker and Docker Compose
45 lines (32 loc) • 1.26 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"));
function getStatus(service, state) {
const health = service.raw && service.raw.State.Health;
if (!health) {
return '-';
}
const statusString = health.Status === 'healthy' ? _chalk.default.green('✔ Healthy') : _chalk.default.red('• Unhealthy');
return statusString;
}
function getHistory(service, state) {
const health = service.raw && service.raw.State.Health;
if (!health) {
return '-';
}
const history = health.Log;
return history.map(record => record.ExitCode === 0 ? _chalk.default.green('█') : _chalk.default.red('x')).join(' ');
}
async function _default(opts) {
const navy = (0, _.getNavy)(opts.navy);
const ps = await navy.ps();
const state = await navy.getState();
console.log((0, _table.default)([['NAME', 'STATUS', 'HISTORY'], ...ps.map(service => [service.name, getStatus(service, state), getHistory(service, state)])]));
}
module.exports = exports.default;