.end(function(res) { if (res.ok) { console.log(cliff.inspect(res.body)); if (options.dump) { fs.writeFileSync(options.dump, JSON.stringify(res.body, null, 4), { options: 'utf-8' }); } } else { console.log("Failed to fetch task, errors:".bold); console.log(cliff.inspect(res.body)); } });
.end(function(res) { if (res.ok) { if (options.json) { console.log(cliff.inspect(res.body)); } else { console.log(cliff.stringifyObjectRows(res.body.tasks, [ 'taskId', 'state', 'workerType', 'routing' ])); } } else { console.log("Failed to list pending tasks, errors:".bold); console.log(cliff.inspect(res.body)); } });
.end(function(res) { if (res.ok) { console.log("Task claimed until: " + res.body.status.takenUntil.bold); console.log(cliff.inspect(res.body)); state.runId = res.body.runId; state.taskId = res.body.status.taskId; state.logsUrl = res.body.logsPutUrl; state.resultUrl = res.body.resultPutUrl; utils.saveState(state); } else { console.log("Failed to claim task, errors:".bold.red); console.log(cliff.inspect(res.body)); } });
cli.withStdinLines(function (lines) { for (var i = 0; i < lines.length; i++) { if (lines[i] === '') { continue; } var address = new v6.Address(lines[i]); if (options.v) { this.output(sprintf('%s = %s\n', lines[i], cliff.inspect(address))); } else if (options.c) { rows.push([ lines[i], address.isValid() ? 'Yes' : 'No'.red, address.isValid() ? address.correctForm() : '', address.isValid() ? address.canonicalForm() : '' ]); } else { this.output(sprintf('%s,%s\n', lines[i], address.isValid() ? 'valid' : 'invalid')); } } if (options.c) { console.log(cliff.stringifyRows(rows, ['green', 'green', 'green', 'green'])); } });
.action(function(name, options) { var api = apis[name]; if (api === undefined) { console.log("No API named: " + name); process.exit(1); } console.log(cliff.inspect(api)); });
process.stdin.on('keypress', function (key, info) { if (key === 'l') { listKeys() } else if (key === 'b' && !info.ctrl ) { engine.executeSignal('buy') console.log('\nmanual'.grey + ' limit ' + 'BUY'.green + ' command executed'.grey) } else if (key === 'B' && !info.ctrl) { engine.executeSignal('buy', null, null, false, true) console.log('\nmanual'.grey + ' market ' + 'BUY'.green + ' command executed'.grey) } else if (key === 's' && !info.ctrl) { engine.executeSignal('sell') console.log('\nmanual'.grey + ' limit ' + 'SELL'.red + ' command executed'.grey) } else if (key === 'S' && !info.ctrl) { engine.executeSignal('sell', null, null, false, true) console.log('\nmanual'.grey + ' market ' + 'SELL'.red + ' command executed'.grey) } else if ((key === 'c' || key === 'C') && !info.ctrl) { delete s.buy_order delete s.sell_order console.log('\nmanual'.grey + ' order cancel' + ' command executed'.grey) } else if (key === 'm' && !info.ctrl && so.mode === 'live') { so.manual = !so.manual console.log('\nMANUAL trade in LIVE mode: ' + (so.manual ? 'ON'.green.inverse : 'OFF'.red.inverse)) } else if (key === 'T' && !info.ctrl) { so.order_type = 'taker' console.log('\n' + 'Taker fees activated'.bgRed) } else if (key === 'M' && !info.ctrl) { so.order_type = 'maker' console.log('\n' + 'Maker fees activated'.black.bgGreen) } else if (key === 'o' && !info.ctrl) { listOptions() } else if (key === 'O' && !info.ctrl) { console.log('\n' + cliff.inspect(so)) } else if (key === 'P' && !info.ctrl) { console.log('\nWriting statistics...'.grey) printTrade(false) } else if (key === 'X' && !info.ctrl) { console.log('\nExiting... ' + '\nWriting statistics...'.grey) printTrade(true) } else if (key === 'd' && !info.ctrl) { console.log('\nDumping statistics...'.grey) printTrade(false, true) } else if (key === 'D' && !info.ctrl) { console.log('\nDumping statistics...'.grey) toggleStats() } else if (key === 'L' && !info.ctrl) { so.debug = !so.debug console.log('\nDEBUG mode: ' + (so.debug ? 'ON'.green.inverse : 'OFF'.red.inverse)) } else if (info.name === 'c' && info.ctrl) { // @todo: cancel open orders before exit console.log() process.exit() } })
app.cmd('config', cli.config = function () { var keys = Object.keys(easysocket.config.store), conf = cliff.inspect(easysocket.config.store); if (keys.length <= 2) { conf = conf.replace(/\{\s/, '{ \n') .replace(/\}/, '\n}') .replace('\\033[90m', ' \\033[90m') .replace(/, /ig, ',\n '); } else { conf = conf.replace(/\n\s{4}/ig, '\n '); } conf.split('\n').forEach(function (line) { easysocket.log.data(line); }); });
function formatOutput(comd, data) { if (comd === 'servers') { var msg = data.msg; var rows = []; var header = []; var results = []; serverMap = {}; serverMap["all"] = 1; header.push(['serverId', 'serverType', 'host', 'port', 'pid', 'heapUsed(M)', 'uptime(m)']); var color = getColor(header[0].length); for (var key in msg) { var server = msg[key]; if (!server['port']) { server['port'] = null; } serverMap[server['serverId']] = 1; rows.push([server['serverId'], server['serverType'], server['host'], server['port'], server['pid'], server['heapUsed'], server['uptime']]); } async.sortBy(rows, function(server, callback) { callback(null, server[0]); }, function(err, _results) { results = header.concat(_results); log('\n' + cliff.stringifyRows(results, color) + '\n'); return; }); } if (comd === 'connections') { var msg = data.msg; var rows = []; var color = getColor(3); rows.push(['serverId', 'totalConnCount', 'loginedCount']); for (var key in msg) { var server = msg[key]; rows.push([server['serverId'], server['totalConnCount'], server['loginedCount']]); } log('\n' + cliff.stringifyRows(rows, color) + '\n'); return; } if (comd === 'logins') { var msg = data.msg; var rows = []; var color = getColor(3); rows.push(['loginTime', 'uid', 'address']); for (var key in msg) { var server = msg[key]; var loginedList = server['loginedList'] || []; if (loginedList && loginedList.length === 0) { log('\nno user logined in this connector\n'); return; } log('\nserverId: ' + server['serverId'] + ' totalConnCount: ' + server['totalConnCount'] + ' loginedCount: ' + server['loginedCount']); for (var i = 0; i < loginedList.length; i++) { rows.push([format_date(new Date(loginedList[i]['loginTime'])), loginedList[i]['uid'], loginedList[i]['address']]); } log('\n' + cliff.stringifyRows(rows, color) + '\n'); return; } } if (comd === 'modules') { var msg = data.msg; log('\n' + consts.MODULE_INFO); log(data.msg + '\n'); return; } if (comd === 'status') { var msg = data.msg; var server = msg.body; var rows = []; rows.push(['time', 'serverId', 'serverType', 'pid', 'cpuAvg', 'memAvg', 'vsz', 'rss', 'usr', 'sys', 'gue']); var color = getColor(rows[0].length); if (server) { rows.push([server['time'], server['serverId'], server['serverType'], server['pid'], server['cpuAvg'], server['memAvg'], server['vsz'], server['rss'], server['usr'], server['sys'], server['gue']]); log('\n' + cliff.stringifyRows(rows, color) + '\n'); } else { log('\n' + consts.STATUS_ERROR + '\n'); } return; } if (comd === 'config' || comd === 'components' || comd === 'settings' || comd === 'get' || comd === 'set' || comd === 'exec' || comd === 'run') { log('\n' + cliff.inspect(data) + '\n'); return; } if (comd === 'stop') { return } if (comd === 'add') { return } if (comd === 'proxy' || comd === 'handler') { log('\n' + cliff.inspect(data) + '\n'); return } if (comd === 'memory' || comd === 'cpu') { log(data + '\n'); return; } }
.action(function(options) { // Load state var state = utils.loadState(); console.log(cliff.inspect(state)); });
function stringifyFilter( values ) { return stripColorCodes( format( values ) ); }