UNPKG

stratumn-cli

Version:
93 lines (65 loc) 2.42 kB
'use strict'; var _commander = require('commander'); var _commander2 = _interopRequireDefault(_commander); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _readPackageSync = require('../utils/readPackageSync'); var _readPackageSync2 = _interopRequireDefault(_readPackageSync); var _get = require('../utils/get'); var _get2 = _interopRequireDefault(_get); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function parseTime(str) { if (str.match(/^[0-9]{5,}$/)) { return parseInt(str, 10); } var val = (0, _moment2.default)(str).valueOf(); if (isNaN(val)) { process.stderr.write('Invalid time\n', function () { return process.exit(1); }); } return val; } _commander2.default.version((0, _readPackageSync2.default)('version')).usage('<app-name>').option('-f, --from <time>', 'from timestamp (milliseconds) or date', parseTime).option('-t, --to <time>', 'to timestamp (milliseconds) or date', parseTime).parse(process.argv); if (_commander2.default.args.length !== 1) { _commander2.default.help(); } function handleError(err) { process.stderr.write(err.message + '\n', function () { return process.exit(1); }); } function rpad(str, cols) { return str + new Array(Math.max(0, cols - str.length) + 1).join(' '); } var filters = []; if (_commander2.default.from) { filters.push(['from', _commander2.default.from]); } if (_commander2.default.to) { filters.push(['to', _commander2.default.to]); } var queryString = ''; if (filters.length) { queryString = '?' + filters.map(function (filter) { return filter[0] + '=' + filter[1]; }); } (0, _get2.default)('/applications/' + _commander2.default.args[0] + '/metrics' + queryString, true).then(function (metrics) { var content = ''; content += rpad('OPERATIONS', 16) + rpad('FOSSILS', 16) + 'ERRORS\n'; content += rpad(metrics.operationCount + '', 16); content += _chalk2.default.cyan(rpad(metrics.fossilCount + '', 16)); content += _chalk2.default.red(metrics.errorCount) + '\n'; process.stdout.write(content, process.exit); }).catch(function (err) { if (err.code === 'ENOENT') { process.stdout.write('You must login first\n', function () { return process.exit(1); }); return; } handleError(err); });