39 lines
839 B
JavaScript
39 lines
839 B
JavaScript
const {exec} = require("child_process");
|
|
|
|
class Process {
|
|
constructor(cmd, cb) {
|
|
this.cmd = cmd
|
|
this.pid = exec(cmd, {windowsHide: true, encoding: "utf8"});
|
|
this.callback = cb
|
|
}
|
|
|
|
static new(cmd) {
|
|
return new Promise((resolve, reject) => exec(cmd, {windowsHide: true}, (err) => {
|
|
if (!err) {
|
|
resolve()
|
|
} else reject(err)
|
|
}))
|
|
}
|
|
|
|
ins() {
|
|
return new Promise((resolve, reject) => {
|
|
this.pid.on('close', (code, err) => {
|
|
if (code == 0 && !err) {
|
|
resolve()
|
|
} else reject(err)
|
|
})
|
|
this.pid.on('exit', (code, err) => {
|
|
if (code == 0 && !err) {
|
|
resolve()
|
|
} else reject(err)
|
|
})
|
|
this.pid.stdout.on('data', data => {
|
|
console.log(data)
|
|
this.callback?.()
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
module.exports = Process
|