From e55d6cafd6df81bf2871307ebe15bf352721930c Mon Sep 17 00:00:00 2001 From: tretrauit Date: Thu, 3 Nov 2022 17:44:54 +0700 Subject: [PATCH] updater: do not delete directory I took a look at deletefiles.txt again and realized that they're all files, so we don't need to delete the entire directory Signed-off-by: tretrauit --- requirements.txt | 2 +- setup.py | 3 ++- worthless/installer.py | 23 +++++++++++------------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/requirements.txt b/requirements.txt index 0787310..4cb8d10 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -aiohttp==3.8.1 +aiohttp==3.8.3 appdirs~=1.4.4 aiopath~=0.6.10 \ No newline at end of file diff --git a/setup.py b/setup.py index 739fb46..1ae1fea 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,5 @@ import pathlib + from setuptools import setup # The directory containing this file @@ -9,7 +10,7 @@ README = (HERE / "README.md").read_text() setup( name='worthless', - version='2.2.7', + version='2.2.8', packages=['worthless', 'worthless.classes', 'worthless.classes.launcher', 'worthless.classes.installer'], url='https://git.froggi.es/tretrauit/worthless-launcher', license='MIT License', diff --git a/worthless/installer.py b/worthless/installer.py index 188c798..607fd38 100644 --- a/worthless/installer.py +++ b/worthless/installer.py @@ -1,14 +1,16 @@ import asyncio +import hashlib +import json +import platform import re import shutil -import platform -import aiohttp import zipfile -import json -import hashlib -from pathlib import Path from configparser import ConfigParser +from pathlib import Path + +import aiohttp from aiopath import AsyncPath + from worthless import constants from worthless.launcher import Launcher from worthless.launcherconfig import LauncherConfig @@ -387,15 +389,12 @@ class Installer: deletefiles = archive.read("deletefiles.txt").decode().split("\n") for file in deletefiles: current_game_file = Path(self._gamedir.joinpath(file)) - if current_game_file == self._gamedir: + if current_game_file == Path(self._gamedir): continue - if not current_game_file.exists(): + if not current_game_file.is_file(): continue - if current_game_file.is_file(): - current_game_file.unlink(missing_ok=True) - continue - if current_game_file.is_dir(): - shutil.rmtree(current_game_file, ignore_errors=True) + print("Deleting ", file) + current_game_file.unlink(missing_ok=True) await asyncio.to_thread(archive.extractall, self._gamedir, members=files) archive.close()