Files
nexe/node_modules/celeri/lib/modules/password.js
T
2011-11-26 17:00:12 -06:00

58 lines
1.2 KiB
JavaScript
Executable File

exports.plugin = function(cli)
{
function getMask(mask, length)
{
if(!mask) return '';
var buffer = '';
for(var i = length; i--;)
{
buffer += mask;
}
return buffer;
}
cli.password = cli.queue(function(label, mask, callback)
{
if(typeof mask == 'function')
{
callback = mask;
mask = undefined;
}
cli.write(label);
var input = '',
self = this;
self.attach(callback);
var disposable = cli.on({
'backspace': function()
{
if(!input.length) return;
input = input.substr(0, input.length-1);
},
'keypress': function(data)
{
if(data.key.name != 'backspace')
input += data.char;
cli.buffer(label+getMask(mask, input.length));
},
'enter': function()
{
setTimeout(self.next,1,input);
disposable.dispose();
}
});
});
}