'use strict'; var bcrypt = require('bcryptjs'), async = require('async'), action = process.argv[2]; switch(action) { case 'compare': bcrypt.compare(process.argv[3], process.argv[4], function(err, res) { process.stdout.write(res ? 'true' : 'false'); }); break; case 'hash': async.waterfall([ async.apply(bcrypt.genSalt, parseInt(process.argv[3], 10)), function(salt, next) { bcrypt.hash(process.argv[4], salt, next); } ], function(err, hash) { if (!err) { process.stdout.write(hash); } else { process.stderr.write(err.message); } }); break; }