Skip to content

Instantly share code, notes, and snippets.

@nbqx
Created April 11, 2014 03:51
Show Gist options
  • Save nbqx/10440004 to your computer and use it in GitHub Desktop.
Save nbqx/10440004 to your computer and use it in GitHub Desktop.
var clc = require('cli-color');
//// cli-color progress bar
function make_bar(t,cu){
var ret = [];
var s = 10; //step
var c = cu/s;
var r = s-c;
for(var i=0; i<c; i++){ ret.push(clc.white('|')) }
for(var j=0; j<r; j++){ ret.push('*') }
return ret.join('')
};
function make_arrow(t,cu){
var ret = [];
var s = 10; //step
var c = cu/s;
var r = s-c;
for(var i=0; i<c-1; i++){ ret.push(clc.white('-')) }
ret.push('>');
for(var j=0; j<r; j++){ ret.push(' ') }
return ret.join('')
};
function make_arrow_(t,cu,hd,tl){
var ret = [];
var s = 10; //step
var c = cu/s;
var r = s-c;
for(var i=0; i<c-1; i++){ ret.push(tl) }
ret.push(hd);
for(var j=0; j<r; j++){ ret.push(' ') }
return ret.reverse().join('')
};
(function c(t,x){
var h = clc.green('[Status]: ');
// pattern 1
console.log([
clc.reset,
h,
'[', make_bar(t,x),']',
': ',x.toString(),'%'
].join(''));
// pattern 2
console.log([
h,
(function(_x){
return (_x/10%4===0)? '-' : (_x/10%4===1)? "\\" : (_x/10%4===2)? '|' : '/';
})(x),
' (',x.toString(),'% completed)'
].join(''));
// pattern 3
console.log([
h,
'[start] ',
make_arrow(t,x),
' [goal]'
].join(''));
// pattern 4
console.log([
h,
"\uD83C\uDFC1",
make_arrow_(t,x,"\uD83C\uDFC3","\uD83D\uDCA8"),
' (',x.toString(),'% completed)'
].join(''));
if(x===t){
return false
}else{
setTimeout(c,300,t,x+10);
}
})(100,0);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment