my_exec.js 641 B

123456789101112131415161718192021222324252627
  1. const { spawn } = require('child_process')
  2. module.exports = function myExec(cmd, ...args) {
  3. return new Promise((resolve, reject) => {
  4. const run = spawn(cmd, args)
  5. let out = ''
  6. run.stdout.on('data', (data) => {
  7. console.log(`[stdout]: ${data.toString().trimEnd()}`)
  8. out += data.toString()
  9. })
  10. run.stderr.on('data', (data) => {
  11. console.log(`[stderr]: ${data.toString().trimEnd()}`)
  12. })
  13. run.on('exit', function (code) {
  14. console.log('child process exited with code ' + code.toString())
  15. if (code === 0) {
  16. resolve(out)
  17. } else {
  18. reject(code)
  19. }
  20. })
  21. })
  22. }