1
Fork 0

add get_pass and confirm_pass utilities

This commit is contained in:
Conduitry 2021-03-08 21:32:19 -05:00
parent c6e35a6191
commit 69d59accf2
1 changed files with 32 additions and 0 deletions

32
pass.js Normal file
View File

@ -0,0 +1,32 @@
const readline = require('readline');
const stream = require('stream');
const devnull = new stream.Writable({ write: (chunk, encoding, cb) => cb() });
function get_pass(prompt) {
process.stdout.write(prompt);
return new Promise((res, rej) => {
const rl = readline
.createInterface({ input: process.stdin, output: devnull, terminal: true })
.once('line', (line) => {
res(line);
rl.close();
})
.once('close', () => {
process.stdout.write('\n');
rej();
});
});
}
async function confirm_pass(prompt1, prompt2, error) {
for (;;) {
const pass1 = await get_pass(prompt1);
const pass2 = await get_pass(prompt2);
if (pass1 === pass2) {
return pass1;
}
process.stdout.write(error + '\n');
}
}
module.exports = { get_pass, confirm_pass };