chore: prune old update files, fix update dialog #17
@@ -1,4 +1,4 @@
 | 
			
		||||
const appName = "EZPPLauncher";
 | 
			
		||||
const appVersion = "2.1.5";
 | 
			
		||||
const appVersion = "2.1.6";
 | 
			
		||||
 | 
			
		||||
module.exports = { appName, appVersion };
 | 
			
		||||
 
 | 
			
		||||
@@ -271,6 +271,21 @@ async function downloadEZPPLauncherUpdateFiles(osuPath, updateFiles) {
 | 
			
		||||
  const eventEmitter = new EventEmitter();
 | 
			
		||||
 | 
			
		||||
  const startDownload = async () => {
 | 
			
		||||
    //NOTE: delete files that are not in the updateFiles array
 | 
			
		||||
    const foldersToPrune = updateFiles.map(file => path.dirname(path.join(osuPath, ...file.folder.split("/"), file.name))).filter((folder, index, self) => self.indexOf(folder) === index);
 | 
			
		||||
    for (const pruneFolder of foldersToPrune) {
 | 
			
		||||
      //NOTE: check if the folder is not the osu root folder.
 | 
			
		||||
      if (path.basename(pruneFolder) == "osu!")
 | 
			
		||||
        continue;
 | 
			
		||||
      for (const files of await fs.promises.readdir(pruneFolder)) {
 | 
			
		||||
        const filePath = path.join(pruneFolder, files);
 | 
			
		||||
        if (!updateFiles.some(file => path.join(osuPath, ...file.folder.split("/"), file.name) === filePath)) {
 | 
			
		||||
 | 
			
		||||
          await fs.promises.rm(filePath, { recursive: true, force: true });
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (const updateFile of updateFiles) {
 | 
			
		||||
      try {
 | 
			
		||||
        const filePath = path.join(
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								main.js
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								main.js
									
									
									
									
									
								
							@@ -430,6 +430,12 @@ function registerIPCPipes() {
 | 
			
		||||
    return config.all();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  ipcMain.handle("ezpplauncher:checkUpdate", async (e) => {
 | 
			
		||||
    const updateInfo = await updateAvailable();
 | 
			
		||||
    if (updateInfo.update)
 | 
			
		||||
      mainWindow.webContents.send("ezpplauncher:update", updateInfo.release);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  ipcMain.handle("ezpplauncher:exitAndUpdate", async (e) => {
 | 
			
		||||
    await shell.openExternal(releasesUrl);
 | 
			
		||||
    app.exit();
 | 
			
		||||
@@ -523,9 +529,8 @@ function registerIPCPipes() {
 | 
			
		||||
            progress: Math.ceil(data.progress),
 | 
			
		||||
          });
 | 
			
		||||
          mainWindow.webContents.send("ezpplauncher:launchstatus", {
 | 
			
		||||
            status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${
 | 
			
		||||
              formatBytes(data.total)
 | 
			
		||||
            })...`,
 | 
			
		||||
            status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${formatBytes(data.total)
 | 
			
		||||
              })...`,
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
        await updateDownloader.startDownload();
 | 
			
		||||
@@ -578,9 +583,8 @@ function registerIPCPipes() {
 | 
			
		||||
              progress: Math.ceil(data.progress),
 | 
			
		||||
            });
 | 
			
		||||
            mainWindow.webContents.send("ezpplauncher:launchstatus", {
 | 
			
		||||
              status: `Downloading ${data.fileName}(${
 | 
			
		||||
                formatBytes(data.loaded)
 | 
			
		||||
              }/${formatBytes(data.total)})...`,
 | 
			
		||||
              status: `Downloading ${data.fileName}(${formatBytes(data.loaded)
 | 
			
		||||
                }/${formatBytes(data.total)})...`,
 | 
			
		||||
            });
 | 
			
		||||
          });
 | 
			
		||||
          await patcherDownloader.startDownload();
 | 
			
		||||
@@ -714,8 +718,7 @@ function registerIPCPipes() {
 | 
			
		||||
          const osuGameplayFile = path.join(osuPath, "osu!gameplay.dll");
 | 
			
		||||
          if (isWritable(osuUIFile) && isWritable(osuGameplayFile)) {
 | 
			
		||||
            logger.log(
 | 
			
		||||
              `Cleanup complete, took ${
 | 
			
		||||
                ((performance.now() - timeStart) / 1000).toFixed(3)
 | 
			
		||||
              `Cleanup complete, took ${((performance.now() - timeStart) / 1000).toFixed(3)
 | 
			
		||||
              } seconds.`,
 | 
			
		||||
            );
 | 
			
		||||
            clearInterval(cleanup);
 | 
			
		||||
@@ -819,10 +822,6 @@ function createWindow() {
 | 
			
		||||
  // Emitted when the window is ready to be shown
 | 
			
		||||
  // This helps in showing the window gracefully.
 | 
			
		||||
  mainWindow.once("ready-to-show", async () => {
 | 
			
		||||
    const updateInfo = await updateAvailable();
 | 
			
		||||
    if (updateInfo.update) {
 | 
			
		||||
      mainWindow.webContents.send("ezpplauncher:update", updateInfo.release);
 | 
			
		||||
    }
 | 
			
		||||
    mainWindow.show();
 | 
			
		||||
    mainWindow.focus();
 | 
			
		||||
  });
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -24,7 +24,7 @@
 | 
			
		||||
        "regedit-rs": "^1.0.2",
 | 
			
		||||
        "semver": "^7.5.4",
 | 
			
		||||
        "svelte-french-toast": "^1.2.0",
 | 
			
		||||
        "sweetalert2": "^11.10.3",
 | 
			
		||||
        "sweetalert2": "^11.10.8",
 | 
			
		||||
        "systeminformation": "^5.21.22"
 | 
			
		||||
      },
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
@@ -8533,9 +8533,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/sweetalert2": {
 | 
			
		||||
      "version": "11.10.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.7.tgz",
 | 
			
		||||
      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg==",
 | 
			
		||||
      "version": "11.10.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.8.tgz",
 | 
			
		||||
      "integrity": "sha512-oAkYROBfXBY+4sVbQEIcN+ZxAx69lsmz5WEBwdEpyS4m59vOBNlRU5/fJpAI1MVfiDwFZiGwVzB/KBpOyfLNtg==",
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "type": "individual",
 | 
			
		||||
        "url": "https://github.com/sponsors/limonte"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "ezpplauncher-next",
 | 
			
		||||
  "version": "2.1.5",
 | 
			
		||||
  "version": "2.1.6",
 | 
			
		||||
  "description": "EZPPLauncher rewritten with Svelte.",
 | 
			
		||||
  "private": false,
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
@@ -51,7 +51,7 @@
 | 
			
		||||
    "regedit-rs": "^1.0.2",
 | 
			
		||||
    "semver": "^7.5.4",
 | 
			
		||||
    "svelte-french-toast": "^1.2.0",
 | 
			
		||||
    "sweetalert2": "^11.10.3",
 | 
			
		||||
    "sweetalert2": "^11.10.8",
 | 
			
		||||
    "systeminformation": "^5.21.22"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 
 | 
			
		||||
@@ -82,6 +82,10 @@ window.addEventListener("settings-set", async (e) => {
 | 
			
		||||
  await ipcRenderer.invoke("ezpplauncher:settings-set", e.detail);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
window.addEventListener("updateCheck", async () => {
 | 
			
		||||
  await ipcRenderer.invoke("ezpplauncher:checkUpdate");
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
window.addEventListener("updateExit", async () => {
 | 
			
		||||
  await ipcRenderer.invoke("ezpplauncher:exitAndUpdate");
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -66,6 +66,8 @@
 | 
			
		||||
    window.dispatchEvent(new CustomEvent("updateExit"));
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  window.dispatchEvent(new CustomEvent("updateCheck"));
 | 
			
		||||
 | 
			
		||||
  window.addEventListener("open-settings", (e) => {
 | 
			
		||||
    currentPage.set(Page.Settings);
 | 
			
		||||
  });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user