From 58821fc0e5bcca01f3702f4d31edf91d696f323d Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 20 Jun 2024 05:04:40 +0800 Subject: [PATCH] fix(nsis): esitmated size unit (#10086) * Fix nsis esitmated size unit * Add change file --- .changes/nsis-esitimated-size-unit.md | 5 +++++ tooling/bundler/src/bundle/windows/nsis.rs | 21 ++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 .changes/nsis-esitimated-size-unit.md diff --git a/.changes/nsis-esitimated-size-unit.md b/.changes/nsis-esitimated-size-unit.md new file mode 100644 index 000000000..411bed048 --- /dev/null +++ b/.changes/nsis-esitimated-size-unit.md @@ -0,0 +1,5 @@ +--- +"tauri-bundler": "patch:bug" +--- + +Fix NSIS esitmated size unit being in kB (1000 bytes) not KB (1024 bytes) diff --git a/tooling/bundler/src/bundle/windows/nsis.rs b/tooling/bundler/src/bundle/windows/nsis.rs index f5aaf74cb..6bcf36508 100644 --- a/tooling/bundler/src/bundle/windows/nsis.rs +++ b/tooling/bundler/src/bundle/windows/nsis.rs @@ -661,21 +661,20 @@ fn generate_binaries_data(settings: &Settings) -> crate::Result { } fn generate_estimated_size( - main: &Path, + main: &PathBuf, binaries: &BinariesMap, resources: &ResourcesMap, ) -> crate::Result { - use std::fs::metadata; - - let mut size = metadata(main)?.len(); - - for k in binaries.keys().chain(resources.keys()) { - size += metadata(k)?.len(); + 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()))? + .len(); } - - size /= 1000; - - Ok(format!("{size:#08x}")) + Ok(format!("{:#08x}", size / 1024)) } fn get_lang_data(lang: &str) -> Option<(String, &[u8])> {