From 77d44215ef1d2092c0ac6953c6684256565c1d8f Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Thu, 27 Jun 2024 15:43:13 +0300 Subject: [PATCH] enhance(nsis): include uninstaller size in estimated size (#10137) --- tooling/bundler/src/bundle/windows/nsis.rs | 6 +++--- tooling/bundler/src/bundle/windows/templates/installer.nsi | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tooling/bundler/src/bundle/windows/nsis.rs b/tooling/bundler/src/bundle/windows/nsis.rs index aaafaef39..e0235b2b2 100644 --- a/tooling/bundler/src/bundle/windows/nsis.rs +++ b/tooling/bundler/src/bundle/windows/nsis.rs @@ -673,17 +673,17 @@ fn generate_estimated_size( main: &PathBuf, binaries: &BinariesMap, resources: &ResourcesMap, -) -> crate::Result { +) -> crate::Result { let mut size = 0; for k in std::iter::once(main) .chain(binaries.keys()) .chain(resources.keys()) { size += std::fs::metadata(k) - .with_context(|| format!("when getting size of {}", main.display()))? + .with_context(|| format!("when getting size of {}", k.display()))? .len(); } - Ok(format!("{:#08x}", size / 1024)) + Ok(size / 1024) } fn get_lang_data(lang: &str) -> Option<(String, &[u8])> { diff --git a/tooling/bundler/src/bundle/windows/templates/installer.nsi b/tooling/bundler/src/bundle/windows/templates/installer.nsi index 2d201cadd..3216867f3 100644 --- a/tooling/bundler/src/bundle/windows/templates/installer.nsi +++ b/tooling/bundler/src/bundle/windows/templates/installer.nsi @@ -614,7 +614,12 @@ Section Install WriteRegStr SHCTX "${UNINSTKEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" WriteRegDWORD SHCTX "${UNINSTKEY}" "NoModify" "1" WriteRegDWORD SHCTX "${UNINSTKEY}" "NoRepair" "1" - WriteRegDWORD SHCTX "${UNINSTKEY}" "EstimatedSize" "${ESTIMATEDSIZE}" + + ${GetSize} "$INSTDIR" "/M=uninstall.exe /S=0K /G=0" $0 $1 $2 + IntOp $0 $0 + ${ESTIMATEDSIZE} + IntFmt $0 "0x%08X" $0 + WriteRegDWORD SHCTX "${UNINSTKEY}" "EstimatedSize" "$0" + !if "${HOMEPAGE}" != "" WriteRegStr SHCTX "${UNINSTKEY}" "URLInfoAbout" "${HOMEPAGE}" WriteRegStr SHCTX "${UNINSTKEY}" "URLUpdateInfo" "${HOMEPAGE}"