diff --git a/bin/scp2 b/bin/scp2 index 3883168..166fc5e 100755 --- a/bin/scp2 +++ b/bin/scp2 @@ -2,8 +2,11 @@ var fs = require('fs'); var path = require('path'); +var prompt = require("prompt"); var client = require('../'); +prompt.message = ""; + main(process.argv.slice()); function main(argv) { @@ -76,10 +79,20 @@ function main(argv) { client.on('error', function(err) { if (err.code === 'ECONNREFUSED') { - prompt(' password: ', function(val) { + prompt.start(); + prompt.get({ + properties: { + password: { + hidden: true + } + } + }, function(err, values) { + if(err) { + process.exit(0); + } client.close(); delete client.__ssh; - defaults.password = val; + defaults.password = values.password; scp(src, dest, defaults); }); } else { @@ -92,8 +105,18 @@ function main(argv) { defaults.privateKey = fs.readFileSync(identify); scp(src, dest, defaults); } else if (!password) { - prompt(' password: ', function(val) { - defaults.password = val; + prompt.start(); + prompt.get({ + properties: { + password: { + hidden: true + } + } + }, function(err, values) { + if(err) { + process.exit(0); + } + defaults.password = values.password; scp(src, dest, defaults); }); } else { @@ -163,14 +186,6 @@ function printLog(quiet) { } } -function prompt(str, fn) { - process.stdout.write(str); - process.stdin.setEncoding('utf8'); - process.stdin.once('data', function(val) { - fn(val.trim()); - }).resume(); -} - function scp(src, dest, defaults) { console.log(); client.defaults(defaults); diff --git a/package.json b/package.json index 939a070..c24c451 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "async": "~0.9.0", "glob": "~7.0.3", "lodash": "~4.11.1", + "prompt": "^1.0.0", "ssh2": "^0.6.0" }, "repository": {