UNPKG

youzanyun-devtool-worker

Version:

- web - ws - proxy

98 lines (97 loc) 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const child_process_1 = require("child_process"); const spring4js_nodejs_1 = require("spring4js-nodejs"); let ExecuteService = class ExecuteService { constructor() { } async start() { } promiseExec(cmd, options) { return new Promise((resolve, reject) => { options.shell = true; options.env = process.env; options.env.LC_CTYPE = 'UTF-8'; child_process_1.exec(cmd, options, (error, stdout, stderr) => { if (error) { console.log('error', error); reject(error); return; } if (stderr) { console.log('stderr', stderr); reject(stderr); return; } resolve(stdout); }); }); } promiseExecFile(file, args = [], options = {}) { return new Promise((resolve, reject) => { options.shell = true; options.env = process.env; options.env.LC_CTYPE = 'UTF-8'; child_process_1.execFile(file, args, options, (error, stdout, stderr) => { if (error) { console.log('error', error); reject(error); return; } if (stderr) { console.log('stderr', stderr); reject(stderr); return; } resolve(stdout); }); }); } promiseSpawm(cmd, args = [], options = {}, log) { return new Promise((resolve, reject) => { options.stdio = 'pipe'; options.shell = true; options.env = process.env; options.env.LC_CTYPE = 'UTF-8'; let error_cache = ''; const ls = child_process_1.spawn(cmd, args, options); ls.on('error', (err) => { if (log) { log.report(`err ${err}`); } reject(err); }); if (ls.stdout) { ls.stdout.on('data', (data) => { if (log) { log.report(data.toString('utf-8')); } }); } if (ls.stderr) { ls.stderr.on('data', (data) => { if (log) { log.report(data.toString('utf-8')); } error_cache += data.toString('utf-8'); }); } ls.on('close', (code) => { if (log) { log.report(`code:${code}`); } if (+code === 0) { resolve(code); } else { reject(error_cache); } }); }); } }; ExecuteService = tslib_1.__decorate([ spring4js_nodejs_1.Service() ], ExecuteService); exports.default = ExecuteService;