sudo.js 605 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * @author oldj
  3. * @blog https://oldj.net
  4. *
  5. * try to apply hosts
  6. */
  7. 'use strict'
  8. module.exports = svr => {
  9. let _resolve
  10. let _reject
  11. svr.once('sudo_pswd', (pswd) => {
  12. svr.removeAllListeners('sudo_cancel')
  13. try {
  14. _resolve(pswd)
  15. } catch (e) {
  16. console.log(e)
  17. }
  18. })
  19. svr.once('sudo_cancel', () => {
  20. svr.removeAllListeners('sudo_pswd')
  21. try {
  22. _reject('user:sudo_cancel')
  23. } catch (e) {
  24. console.log(e)
  25. }
  26. })
  27. return new Promise((resolve, reject) => {
  28. svr.broadcast('sudo_prompt')
  29. _resolve = resolve
  30. _reject = reject
  31. })
  32. }