43 lines
1006 B
JavaScript
Executable File
43 lines
1006 B
JavaScript
Executable File
exports.plugin = function(cli)
|
||
{
|
||
cli.loading = function(label, callback)
|
||
{
|
||
|
||
if(typeof label == 'function')
|
||
{
|
||
callback = label;
|
||
label = '';
|
||
}
|
||
|
||
if(!label) label = '';
|
||
|
||
|
||
function done(message, success)
|
||
{
|
||
if(!message) message = success == undefined ? 'done' : (success ? 'success' : 'fail') ;
|
||
|
||
var color = success == undefined ? 'grey' : (success ? 'green' : 'red');
|
||
|
||
|
||
clearInterval(interval);
|
||
cli.replaceLine(label + message[color]['bold']);
|
||
cli.newLine();
|
||
}
|
||
|
||
if(callback) callback(done);
|
||
|
||
var seq = '–\|/';
|
||
pos = 0,
|
||
interval = setInterval(function()
|
||
{
|
||
cli.replaceLine(label+'['+seq[pos++%seq.length].blue+'] ');
|
||
}, 200);
|
||
|
||
|
||
return {
|
||
done: done
|
||
};
|
||
|
||
|
||
}
|
||
} |