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])> {