From 7eb5fe1fbb57de2ed530070fe93f36ccfa12dc21 Mon Sep 17 00:00:00 2001 From: vmarchaud Date: Fri, 2 Dec 2016 15:26:27 +0100 Subject: [PATCH] (cli/ui) stacked mode when term columns < 90 --- lib/API/CliUx.js | 54 +++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/lib/API/CliUx.js b/lib/API/CliUx.js index 07d41dd0..8d8e6c3f 100644 --- a/lib/API/CliUx.js +++ b/lib/API/CliUx.js @@ -198,15 +198,21 @@ UX.describeTable = function(process) { * @return */ UX.dispAsTable = function(list, interact_infos) { + var stacked = (process.stdout.columns || 90) < 90; + var app_head = stacked ? ['Name', 'id', 'mode', 'status', 'cpu', 'mem'] : + ['App name', 'id', 'mode', 'pid', 'status', 'restart', 'uptime', 'cpu', 'mem', 'watching']; + var mod_head = stacked ? ['Module', 'status', 'cpu', 'mem'] : + ['Module', 'version', 'target PID', 'status', 'restart', 'cpu', 'memory']; + var app_table = new Table({ - head: ['App name', 'id', 'mode', 'pid', 'status', 'restart', 'uptime', 'cpu', 'mem', 'watching'], - colAligns : ['left', 'left', 'left', 'left', 'left' , 'left', 'left', 'left', 'left', 'right'], + head : app_head, + colAligns : new Array(app_head).fill('left') || ['left'], style : {'padding-left' : 1, head : ['cyan', 'bold'], compact : true} }); var module_table = new Table({ - head: ['Module', 'version', 'target PID', 'status', 'restart', 'cpu', 'memory'], - colAligns : ['left', 'left', 'left', 'left'], + head : mod_head, + colAligns : new Array(mod_head).fill('left') || ['left'], style : {'padding-left' : 1, head : ['cyan', 'bold'], compact : true} }); @@ -230,29 +236,29 @@ UX.dispAsTable = function(list, interact_infos) { key = chalk.bold.cyan(key); if (l.pm2_env.pmx_module == true) { - obj[key] = [ - chalk.bold(l.pm2_env.axm_options.module_version || 'N/A'), - typeof(l.pm2_env.axm_options.pid) === 'number' ? l.pm2_env.axm_options.pid : 'N/A', - colorStatus(status), - l.pm2_env.restart_time ? l.pm2_env.restart_time : 0, - l.monit ? (l.monit.cpu + '%') : 'N/A', - l.monit ? UX.bytesToSize(l.monit.memory, 3) : 'N/A' - ]; + obj[key] = []; + if (!stacked) + obj[key].push(chalk.bold(l.pm2_env.axm_options.module_version || 'N/A'), + typeof(l.pm2_env.axm_options.pid) === 'number' ? l.pm2_env.axm_options.pid : 'N/A' ); + obj[key].push(colorStatus(status)); + if (!stacked) + obj[key].push(l.pm2_env.restart_time ? l.pm2_env.restart_time : 0); + obj[key].push(l.monit ? (l.monit.cpu + '%') : 'N/A', l.monit ? UX.bytesToSize(l.monit.memory, 3) : 'N/A' ); + safe_push(module_table, obj); - //module_table.push(obj); } else { - obj[key] = [ - l.pm2_env.pm_id, - mode == 'fork_mode' ? chalk.inverse.bold('fork') : chalk.blue.bold('cluster'), - l.pid, - colorStatus(status), - l.pm2_env.restart_time ? l.pm2_env.restart_time : 0, - (l.pm2_env.pm_uptime && status == 'online') ? timeSince(l.pm2_env.pm_uptime) : 0, - l.monit ? l.monit.cpu + '%' : 'N/A', - l.monit ? UX.bytesToSize(l.monit.memory, 1) : 'N/A', - l.pm2_env.watch ? chalk.green.bold('enabled') : chalk.grey('disabled') - ]; + obj[key] = [ l.pm2_env.pm_id, mode == 'fork_mode' ? chalk.inverse.bold('fork') : chalk.blue.bold('cluster') ]; + if (!stacked) + obj[key].push(l.pid); + obj[key].push(colorStatus(status)); + if (!stacked) + obj[key].push(l.pm2_env.restart_time ? l.pm2_env.restart_time : 0, + (l.pm2_env.pm_uptime && status == 'online') ? timeSince(l.pm2_env.pm_uptime) : 0); + obj[key].push(l.monit ? l.monit.cpu + '%' : 'N/A', l.monit ? UX.bytesToSize(l.monit.memory, 1) : 'N/A' ); + if (!stacked) + obj[key].push(l.pm2_env.watch ? chalk.green.bold('enabled') : chalk.grey('disabled')); + safe_push(app_table, obj); }