Include size in WimImage
This commit is contained in:
parent
e873ec9602
commit
c572716ef9
1 changed files with 24 additions and 3 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
use core::system::disk::bytes_to_string;
|
||||||
// This file is part of Deja-Vu.
|
// This file is part of Deja-Vu.
|
||||||
//
|
//
|
||||||
// Deja-Vu is free software: you can redistribute it and/or modify it
|
// Deja-Vu is free software: you can redistribute it and/or modify it
|
||||||
|
|
@ -112,6 +113,7 @@ pub struct WimImage {
|
||||||
pub build: String,
|
pub build: String,
|
||||||
pub index: String,
|
pub index: String,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
pub size: u64,
|
||||||
pub spbuild: String,
|
pub spbuild: String,
|
||||||
pub version: String,
|
pub version: String,
|
||||||
}
|
}
|
||||||
|
|
@ -138,7 +140,15 @@ impl fmt::Display for WimImage {
|
||||||
} else {
|
} else {
|
||||||
format!("{}, ", self.version)
|
format!("{}, ", self.version)
|
||||||
};
|
};
|
||||||
write!(f, "{} ({}{}.{})", self.name, s, self.build, self.spbuild)
|
write!(
|
||||||
|
f,
|
||||||
|
"{} ({}{}.{}) [{}]",
|
||||||
|
self.name,
|
||||||
|
s,
|
||||||
|
self.build,
|
||||||
|
self.spbuild,
|
||||||
|
bytes_to_string(self.size)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -249,12 +259,23 @@ pub fn parse_wim_file(wim_file: &str, is_setup: bool) -> std::io::Result<WimFile
|
||||||
if current_element == "SPBUILD" {
|
if current_element == "SPBUILD" {
|
||||||
image.spbuild = char_data.trim().to_string();
|
image.spbuild = char_data.trim().to_string();
|
||||||
}
|
}
|
||||||
|
if current_element == "TOTALBYTES" {
|
||||||
|
let result = char_data.trim().parse::<u64>();
|
||||||
|
if let Ok(size) = result {
|
||||||
|
image.size = size;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ok(XmlEvent::EndElement { name }) => {
|
Ok(XmlEvent::EndElement { name }) => {
|
||||||
if name.local_name.to_uppercase() == "IMAGE" {
|
if name.local_name.to_uppercase() == "IMAGE" {
|
||||||
|
if image.size == 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Append image to list
|
// Append image to list
|
||||||
if !image.build.is_empty() && !image.name.is_empty() && !image.index.is_empty()
|
if image.build.is_empty() {
|
||||||
{
|
image.build.push_str("-14");
|
||||||
|
}
|
||||||
|
if !image.name.is_empty() && !image.index.is_empty() {
|
||||||
wim_images.push(image.clone());
|
wim_images.push(image.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue