[hotfix] fix unable to launch due to tasklist returning nothing

This commit is contained in:
MathieuG-P
2023-04-12 20:35:10 +02:00
parent 3b6e908352
commit 28a5576ef9
4 changed files with 16 additions and 10 deletions
+4 -4
View File
@@ -52,13 +52,13 @@ export class BSLauncherService{
}
public isBsRunning(): boolean{
return this.bsProcess?.connected || this.utilsService.taskRunning(BS_EXECUTABLE);
return this.bsProcess?.connected || this.utilsService.taskRunning(BS_EXECUTABLE) === true;
}
public async launch(launchOptions: LauchOption): Promise<LaunchResult>{
if(launchOptions.version.oculus && !this.oculusService.oculusRunning()){ return "OCULUS_NOT_RUNNING" }
if(!launchOptions.version.oculus && !this.steamService.steamRunning()){ return "STEAM_NOT_RUNNING" }
if(this.isBsRunning()){ return "BS_ALREADY_RUNNING" }
if(launchOptions.version.oculus && this.oculusService.oculusRunning() === false){ return "OCULUS_NOT_RUNNING" }
if(!launchOptions.version.oculus && this.steamService.steamRunning() === false){ return "STEAM_NOT_RUNNING" }
if(this.isBsRunning() === true){ return "BS_ALREADY_RUNNING" }
const cwd = await this.localVersionService.getVersionPath(launchOptions.version);
const exePath = path.join(cwd, BS_EXECUTABLE);
+1 -1
View File
@@ -20,7 +20,7 @@ export class OculusService {
this.utils = UtilsService.getInstance();
}
public oculusRunning(): boolean{
public oculusRunning(): boolean | null{
return this.utils.taskRunning("OculusClient.exe");
}
+1 -1
View File
@@ -25,7 +25,7 @@ export class SteamService{
return SteamService.instance;
}
public steamRunning(): boolean{
public steamRunning(): boolean | null{
return this.utils.taskRunning('steam.exe');
}
+10 -4
View File
@@ -33,10 +33,16 @@ export class UtilsService{
public setMainWindows(windows: Map<AppWindow, BrowserWindow>){ this.windows = windows; }
public getMainWindows(win: AppWindow){ return this.windows.get(win); }
public taskRunning(task: string): boolean{
const tasks = spawnSync('tasklist').stdout.toString();
return tasks.includes(task);
}
public taskRunning(task: string): boolean | null{
try{
const tasks = spawnSync('tasklist').stdout;
return tasks.toString().includes(task);
}
catch(error){
log.error(error);
return null;
}
}
public ipcSend<T = any>(channel: string, response: IpcResponse<T>): void{
try {