From 9d0fba7c156a762118ffd03b9d0c8e6d0ff5ae64 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Wed, 11 Jan 2023 16:05:34 +0200 Subject: [PATCH] fix: clean `upgrades` folder on uninstall --- lnbits/extension_manger.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lnbits/extension_manger.py b/lnbits/extension_manger.py index 7c93762a..b573aaef 100644 --- a/lnbits/extension_manger.py +++ b/lnbits/extension_manger.py @@ -123,6 +123,10 @@ class InstallableExtension(NamedTuple): def ext_dir(self) -> str: return os.path.join("lnbits", "extensions", self.id) + @property + def ext_upgrade_dir(self) -> str: + return os.path.join("lnbits", "upgrades", f"{self.id}-{self.hash}") + @property def module_name(self) -> str: return f"lnbits.extensions.{self.id}" @@ -159,11 +163,10 @@ class InstallableExtension(NamedTuple): with zipfile.ZipFile(self.zip_path, "r") as zip_ref: zip_ref.extractall(os.path.join("lnbits", "extensions")) - ext_upgrade_dir = os.path.join("lnbits", "upgrades", f"{self.id}-{self.hash}") os.makedirs(os.path.join("lnbits", "upgrades"), exist_ok=True) - shutil.rmtree(ext_upgrade_dir, True) + shutil.rmtree(self.ext_upgrade_dir, True) with zipfile.ZipFile(self.zip_path, "r") as zip_ref: - zip_ref.extractall(ext_upgrade_dir) + zip_ref.extractall(self.ext_upgrade_dir) def nofiy_upgrade(self) -> None: """Update the the list of upgraded extensions. The middleware will perform redirects based on this""" @@ -172,7 +175,7 @@ class InstallableExtension(NamedTuple): clean_upgraded_exts = list( filter( - lambda old_ext: old_ext.endswith(f"/{self.id}"), + lambda old_ext: not old_ext.endswith(f"/{self.id}"), settings.lnbits_upgraded_extensions, ) ) @@ -187,6 +190,8 @@ class InstallableExtension(NamedTuple): # remove module from extensions shutil.rmtree(self.ext_dir, True) + + shutil.rmtree(self.ext_upgrade_dir, True) @classmethod async def get_extension_info(cls, ext_id: str, hash: str) -> "InstallableExtension":