no need to use a primitive splitting method when execa has it built in. Fixes a bug on windows when the path to QEMU has spaces

This commit is contained in:
Elijah
2023-06-05 21:59:16 -04:00
parent ababbf57b5
commit 1cb19e93f9

View File

@@ -2,7 +2,7 @@ import { EventEmitter } from "events";
import IConfig from "./IConfig.js"; import IConfig from "./IConfig.js";
import * as rfb from 'rfb2'; import * as rfb from 'rfb2';
import * as fs from 'fs'; import * as fs from 'fs';
import { execa, ExecaChildProcess } from "execa"; import { execa, ExecaChildProcess, execaCommand } from "execa";
import QMPClient from "./QMPClient.js"; import QMPClient from "./QMPClient.js";
import BatchRects from "./RectBatcher.js"; import BatchRects from "./RectBatcher.js";
import { createCanvas, Canvas, CanvasRenderingContext2D, createImageData } from "canvas"; import { createCanvas, Canvas, CanvasRenderingContext2D, createImageData } from "canvas";
@@ -71,8 +71,7 @@ export default class QEMUVM extends VM {
log("ERROR", `Failed to delete existing socket: ${e}`); log("ERROR", `Failed to delete existing socket: ${e}`);
process.exit(-1); process.exit(-1);
} }
var qemuArr = this.qemuCmd.split(" "); this.qemuProcess = execaCommand(this.qemuCmd);
this.qemuProcess = execa(qemuArr[0], qemuArr.slice(1));
this.qemuProcess.catch(() => false); this.qemuProcess.catch(() => false);
this.qemuProcess.stderr?.on('data', (d) => log("ERROR", `QEMU sent to stderr: ${d.toString()}`)); this.qemuProcess.stderr?.on('data', (d) => log("ERROR", `QEMU sent to stderr: ${d.toString()}`));
this.qemuProcess.once('spawn', () => { this.qemuProcess.once('spawn', () => {