This commit is contained in:
MathieuG-P
2022-10-09 17:43:24 +02:00
parent 3c7731be19
commit 573da853d7
2 changed files with 17 additions and 5 deletions
+12 -2
View File
@@ -5,6 +5,7 @@ import { BSVersion } from "shared/bs-version.interface";
import { IpcRequest } from "shared/models/ipc";
import { Mod } from "shared/models/mods/mod.interface";
import { InstallModsResult } from "shared/models/mods";
import log from "electron-log";
ipcMain.on("get-available-mods", (event, request: IpcRequest<BSVersion>) => {
const utils = UtilsService.getInstance();
@@ -12,7 +13,10 @@ ipcMain.on("get-available-mods", (event, request: IpcRequest<BSVersion>) => {
modsManager.getAvailableMods(request.args).then(mods => {
utils.ipcSend(request.responceChannel, {success: true, data: mods});
}).catch(() => utils.ipcSend(request.responceChannel, {success: false}));
}).catch(err =>{
utils.ipcSend(request.responceChannel, {success: false});
log.error("ipc", "get-available-mods", err, request);
});
});
ipcMain.on("get-installed-mods", (event, request: IpcRequest<BSVersion>) => {
@@ -21,7 +25,10 @@ ipcMain.on("get-installed-mods", (event, request: IpcRequest<BSVersion>) => {
modsManager.getInstalledMods(request.args).then(mods => {
utils.ipcSend(request.responceChannel, {success: true, data: mods});
}).catch(() => utils.ipcSend(request.responceChannel, {success: false}));
}).catch(err => {
utils.ipcSend(request.responceChannel, {success: false});
log.error("ipc", "get-installed-mods", err, request);
});
});
ipcMain.on("install-mods", (event, request: IpcRequest<{mods: Mod[], version: BSVersion}>) => {
@@ -32,6 +39,7 @@ ipcMain.on("install-mods", (event, request: IpcRequest<{mods: Mod[], version: BS
utils.ipcSend<InstallModsResult>(request.responceChannel, {success: true, data: nbInstalled})
}).catch(err => {
utils.ipcSend(request.responceChannel, {success: false, error: err});
log.error("ipc", "install-mods", err, request);
})
});
@@ -43,6 +51,7 @@ ipcMain.on("uninstall-mods", (event, request: IpcRequest<{mods: Mod[], version:
utils.ipcSend(request.responceChannel, {success: true, data: nbInstalled})
}).catch(err => {
utils.ipcSend(request.responceChannel, {success: false, error: err});
log.error("ipc", "uninstall-mods", err, request);
})
});
@@ -54,5 +63,6 @@ ipcMain.on("uninstall-all-mods", (event, request: IpcRequest<BSVersion>) => {
utils.ipcSend(request.responceChannel, {success: true, data: nbInstalled})
}).catch(err => {
utils.ipcSend(request.responceChannel, {success: false, error: err});
log.error("ipc", "uninstall-all-mods", err, request);
})
});
@@ -10,6 +10,7 @@ import StreamZip from "node-stream-zip";
import { RequestService } from "../request.service";
import { spawn } from "child_process";
import { BS_EXECUTABLE } from "../../constants";
import log from "electron-log";
export class BsModsManagerService {
@@ -116,6 +117,7 @@ export class BsModsManagerService {
const processIPA = spawn(`start /wait /min "" "${ipaPath}" ${args.join(" ")}`, {cwd: versionPath, detached: true, shell: true});
processIPA.once("exit", code => {
if(code === 0){ return resolve(true); }
log.error("IPA PROCESS", "exit code", code);
resolve(false);
});
@@ -158,7 +160,7 @@ export class BsModsManagerService {
const isBSIPA = mod.name.toLowerCase() === "bsipa";
const destDir = isBSIPA ? verionPath : path.join(verionPath, ModsInstallFolder.PENDING);
const extracted = await zip.extract(null, destDir).then(() => true).catch(() => {return false});
const extracted = await zip.extract(null, destDir).then(() => true).catch(err => {log.error(err); return false});
await zip.close();
await this.utilsService.unlinkIfExist(zipPath);
@@ -261,12 +263,12 @@ export class BsModsManagerService {
this.nbInstalledMods = 0;
if(bsipa){
const installed = await this.installMod(bsipa, version).catch(() => false)
const installed = await this.installMod(bsipa, version).catch(err => {log.error("INSTALL BSIPA", err); return false; })
if(!installed){ throw "cannot-install-bsipa"; }
}
for(const mod of mods){
await this.installMod(mod, version);
await this.installMod(mod, version);;
}
return {