From 28ad4a6f73d3bc7de527615aea48b5a48af6b9a4 Mon Sep 17 00:00:00 2001 From: V Date: Sat, 12 Aug 2023 03:13:03 +0200 Subject: [PATCH] Improve valid vencord install checks --- package.json | 2 +- src/main/ipc.ts | 8 +++----- src/main/utils/vencordLoader.ts | 6 +++++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index cda6a42..0d18e65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "VencordDesktop", - "version": "0.2.9", + "version": "0.2.8", "private": true, "description": "", "keywords": [], diff --git a/src/main/ipc.ts b/src/main/ipc.ts index 5955833..ad1c4ad 100644 --- a/src/main/ipc.ts +++ b/src/main/ipc.ts @@ -5,7 +5,7 @@ */ import { app, dialog, ipcMain, session, shell } from "electron"; -import { existsSync, mkdirSync, readFileSync, watch } from "fs"; +import { mkdirSync, readFileSync, watch } from "fs"; import { open, readFile } from "fs/promises"; import { release } from "os"; import { join } from "path"; @@ -17,7 +17,7 @@ import { autoStart } from "./autoStart"; import { VENCORD_FILES_DIR, VENCORD_QUICKCSS_FILE, VENCORD_THEMES_DIR } from "./constants"; import { mainWin } from "./mainWindow"; import { Settings } from "./settings"; -import { FILES_TO_DOWNLOAD } from "./utils/vencordLoader"; +import { isValidVencordInstall } from "./utils/vencordLoader"; ipcMain.on(IpcEvents.GET_VENCORD_PRELOAD_FILE, e => { e.returnValue = join(VENCORD_FILES_DIR, "vencordDesktopPreload.js"); @@ -112,9 +112,7 @@ ipcMain.handle(IpcEvents.SELECT_VENCORD_DIR, async () => { if (!res.filePaths.length) return "cancelled"; const dir = res.filePaths[0]; - for (const file of FILES_TO_DOWNLOAD) { - if (!existsSync(join(dir, file))) return "invalid"; - } + if (!isValidVencordInstall(dir)) return "invalid"; return dir; }); diff --git a/src/main/utils/vencordLoader.ts b/src/main/utils/vencordLoader.ts index 851f6d5..293654a 100644 --- a/src/main/utils/vencordLoader.ts +++ b/src/main/utils/vencordLoader.ts @@ -55,8 +55,12 @@ export async function downloadVencordFiles() { ); } +export function isValidVencordInstall(dir: string) { + return FILES_TO_DOWNLOAD.every(f => existsSync(join(dir, f))); +} + export async function ensureVencordFiles() { - if (existsSync(join(VENCORD_FILES_DIR, "vencordDesktopMain.js"))) return; + if (isValidVencordInstall(VENCORD_FILES_DIR)) return; mkdirSync(VENCORD_FILES_DIR, { recursive: true }); await downloadVencordFiles();