pruning fixes

This commit is contained in:
HorizonCode 2024-04-23 09:56:22 +02:00
parent 9f9804f161
commit 6881a0d1d5
2 changed files with 18 additions and 11 deletions

View File

@ -264,29 +264,35 @@ async function getEZPPLauncherUpdateFiles(osuPath) {
filesToDownload.push(updateFile);
}
}
return filesToDownload;
return [filesToDownload, updateFiles];
}
async function downloadEZPPLauncherUpdateFiles(osuPath, updateFiles) {
async function downloadEZPPLauncherUpdateFiles(osuPath, updateFiles, allFiles) {
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);
const foldersToPrune = allFiles.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) {
console.log("Pruning folder:", pruneFolder);
//NOTE: check if the folder is not the osu root folder.
if (path.basename(pruneFolder) == "osu!")
continue;
if (fs.existsSync(pruneFolder)) {
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)) {
eventEmitter.emit("data", {
fileName: path.basename(filePath),
});
try {
await fs.promises.rm(filePath, { recursive: true, force: true });
} catch { }
const validFolder = allFiles.find(file => path.dirname(filePath).endsWith(file.folder));
if (!validFolder) {
if (allFiles.find(file => file.name == path.basename(filePath)) === undefined) {
console.log("Deleting file:", filePath);
console.log(allFiles.find(file => file.name == path.basename(filePath)));
eventEmitter.emit("data", {
fileName: path.basename(filePath),
});
try {
await fs.promises.rm(filePath, { recursive: true, force: true });
} catch { }
}
}
}
}

View File

@ -557,12 +557,13 @@ function registerIPCPipes() {
status: "Looking for patcher updates...",
});
await new Promise((res) => setTimeout(res, 1000));
const patchFiles = await getEZPPLauncherUpdateFiles(osuPath);
const [patchFiles, allUpdateFiles] = await getEZPPLauncherUpdateFiles(osuPath);
if (patchFiles.length > 0) {
logger.log("EZPPLauncher updates found.");
const patcherDownloader = await downloadEZPPLauncherUpdateFiles(
osuPath,
patchFiles,
allUpdateFiles
);
let errored = false;
patcherDownloader.eventEmitter.on("error", (data) => {