123456789101112131415161718192021222324252627 |
- 'use strict'
- const BB = require('bluebird')
- const optCheck = require('figgy-pudding')({
- prompt: {default: 'This operation requires a one-time password.\nEnter OTP:'},
- otp: {}
- })
- const readUserInfo = require('./read-user-info.js')
- module.exports = otplease
- function otplease (opts, fn) {
- opts = opts.concat ? opts : optCheck(opts)
- return BB.try(() => {
- return fn(opts)
- }).catch(err => {
- if (err.code !== 'EOTP' && !(err.code === 'E401' && /one-time pass/.test(err.body))) {
- throw err
- } else if (!process.stdin.isTTY || !process.stdout.isTTY) {
- throw err
- } else {
- return readUserInfo.otp(
- optCheck(opts).prompt
- ).then(otp => fn(opts.concat({otp})))
- }
- })
- }
|