From 5872ab4ce906ecc3214c078bc86c9391f105a5f4 Mon Sep 17 00:00:00 2001 From: amr-crabnebula Date: Fri, 1 Dec 2023 01:32:02 +0200 Subject: [PATCH] fix(nsis): remove empty resources folders on uninstall https://github.com/tauri-apps/tauri/pull/8263 Co-authored-by: Fabian-Lars --- crates/packager/src/package/nsis/installer.nsi | 9 ++++++++- crates/packager/src/package/nsis/mod.rs | 12 +++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/crates/packager/src/package/nsis/installer.nsi b/crates/packager/src/package/nsis/installer.nsi index ec26f9cb..09a9ed56 100644 --- a/crates/packager/src/package/nsis/installer.nsi +++ b/crates/packager/src/package/nsis/installer.nsi @@ -588,7 +588,14 @@ Section Uninstall ; Delete uninstaller Delete "$INSTDIR\uninstall.exe" - RMDir "$INSTDIR" + ${If} $DeleteAppDataCheckboxState == 1 + RMDir /R /REBOOTOK "$INSTDIR" + ${Else} + {{#each resources_ancestors}} + RMDir /REBOOTOK "$INSTDIR\\{{this}}" + {{/each}} + RMDir "$INSTDIR" + ${EndIf} ; Remove start menu shortcut !insertmacro MUI_STARTMENU_GETFOLDER Application $AppStartMenuFolder diff --git a/crates/packager/src/package/nsis/mod.rs b/crates/packager/src/package/nsis/mod.rs index 76d9b8ea..c2aab18b 100644 --- a/crates/packager/src/package/nsis/mod.rs +++ b/crates/packager/src/package/nsis/mod.rs @@ -449,9 +449,19 @@ fn build_nsis_app_installer(ctx: &Context, nsis_path: &Path) -> crate::Result>(); + resources_ancestors.sort_unstable(); + resources_ancestors.dedup(); + resources_ancestors.sort_by_key(|p| std::cmp::Reverse(p.components().count())); + resources_ancestors.pop(); // Last one is always "" + data.insert("resources_ancestors", to_json(resources_ancestors)); + let binaries = generate_binaries_data(config)?; data.insert("binaries", to_json(&binaries));