From 4f123b69eff433e1051d0095ac864e323d1436ed Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sun, 14 Jul 2024 21:22:25 +0200 Subject: [PATCH] [bugfix] bsipa installation never show error even if bsipa throw errors --- src/main/services/mods/bs-mods-manager.service.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/services/mods/bs-mods-manager.service.ts b/src/main/services/mods/bs-mods-manager.service.ts index 7d34f835..f1701a0d 100644 --- a/src/main/services/mods/bs-mods-manager.service.ts +++ b/src/main/services/mods/bs-mods-manager.service.ts @@ -14,7 +14,7 @@ import { lastValueFrom } from "rxjs"; import JSZip from "jszip"; import { extractZip } from "../../helpers/zip.helpers"; import recursiveReadDir from "recursive-readdir"; -import { minToMs } from "../../../shared/helpers/time.helpers"; +import { sToMs } from "../../../shared/helpers/time.helpers"; import { ensureDir } from "fs-extra"; export class BsModsManagerService { @@ -147,12 +147,18 @@ export class BsModsManagerService { return new Promise(resolve => { const cmd = process.platform === 'linux' ? `screen -dmS "BSIPA" dotnet ${ipaPath} ${args.join(" ")}` // Must run through screen, otherwise BSIPA tries to move console cursor and crashes. - : `start /wait /min "" "${ipaPath}" ${args.join(" ")}`; + : `${ipaPath} ${args.join(" ")}`; log.info("START IPA PROCESS", cmd); const processIPA = spawn(cmd, { cwd: versionPath, detached: true, shell: true }); + const timemout = setTimeout(() => { + log.info("Ipa process timeout"); + resolve(false) + }, sToMs(30)); + processIPA.once("exit", code => { + clearTimeout(timemout); if (code === 0) { log.info("Ipa process exist with code 0"); return resolve(true); @@ -161,10 +167,7 @@ export class BsModsManagerService { resolve(false); }); - setTimeout(() => { - log.info("Ipa process timeout"); - resolve(false) - }, minToMs(1)); + }); }