From 0e0a2faba82bf1beb5613d1f3aca7999ec57bff8 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sun, 19 Jun 2022 21:53:18 +0200 Subject: [PATCH] create uninstaller service --- src/main/services/bs-uninstaller.service.ts | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/services/bs-uninstaller.service.ts diff --git a/src/main/services/bs-uninstaller.service.ts b/src/main/services/bs-uninstaller.service.ts new file mode 100644 index 00000000..6a4e65af --- /dev/null +++ b/src/main/services/bs-uninstaller.service.ts @@ -0,0 +1,31 @@ +import path from "path"; +import { BSInstallerService } from "./bs-installer.service"; +import { BSVersion } from "./bs-version-manager.service"; +import { UtilsService } from "./utils.service"; + +export class BSUninstallerService { + + private static instance: BSUninstallerService; + + private readonly utilsService: UtilsService; + private readonly bsInstallerService: BSInstallerService; + + public static getInstance(): BSUninstallerService { + if(!BSUninstallerService.instance){ BSUninstallerService.instance = new BSUninstallerService(); } + return BSUninstallerService.instance; + } + + private constructor(){ + this.utilsService = UtilsService.getInstance(); + this.bsInstallerService = BSInstallerService.getInstance(); + } + + public async uninstall(version :BSVersion){ + if(version.steam){ throw "Cannot uninstall steam version"; } + const versionFolder = path.join(this.bsInstallerService.getBSInstallationFolder(), version.BSVersion); + if(!this.utilsService.folderExist(versionFolder)){ throw "Version folder not exist"; } + + return await this.utilsService.deleteFolder(versionFolder); + } + +} \ No newline at end of file