const fetch = require('node-fetch'); let tvs = {}; const limit = (v, min, max) => Math.max(min, Math.min(max, Number(v) || 0)); const mapNumber = (v, inMin, inMax, outMin, outMax) => (limit(v, inMin, inMax) - inMin) * (outMax - outMin) / (inMax - inMin) + outMin; let getProgressBar; getProgressBar = (name, perc, width) => { perc = mapNumber(perc, 85, 100, 0, 100); // correctie om meer verschil te zien let full = Math.floor((perc / 100) * width); let empty = width - full; return name + ' [' + '='.repeat(full) + ' '.repeat(empty) + ']'; }; const updateProgress = () => { var pbs = []; Object.keys(tvs) .forEach(k => { pbs.push(getProgressBar(k, 100 - tvs[k], 100)); }); const out = pbs.join(', ') + '\r'; //console.log(out); process.stdout.write(out); }; const showInfo = (tv, data) => { if (data && data.SystemUsage) { let memory = data.SystemUsage.memory; let total = memory.total; let free = (memory.total - memory.used); let perc = (free / total) * 100; tvs[tv] = perc; updateProgress(); } }; const getInfo = (url, tv) => { return fetch(url) .then(r => r.json()) .then(d => showInfo(tv, d)); } setInterval(() => { getInfo('http://10.199.108.35:9500/api/info', '35'); getInfo('http://10.199.108.34:9500/api/info', '34'); }, 2000);
186400cookie-checkES6 MapNumber, CLI progressbar