Skip to content

Commit cc8d1ef

Browse files
Merge pull request #54 from FrameworkComputer/smbios-baseboard
smbios: Print some BaseBoard information
2 parents a0fb07d + 5d03584 commit cc8d1ef

File tree

1 file changed

+31
-4
lines changed
  • framework_lib/src/commandline

1 file changed

+31
-4
lines changed

framework_lib/src/commandline/mod.rs

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -993,13 +993,13 @@ fn smbios_info() {
993993
if let Some(version) = dmidecode_string_val(&data.version()) {
994994
// Assumes it's ASCII, which is guaranteed by SMBIOS
995995
let config_digit0 = &version[0..1];
996-
let config_digit0 = u8::from_str_radix(config_digit0, 16).unwrap();
997-
if let Some(version_config) =
998-
<ConfigDigit0 as FromPrimitive>::from_u8(config_digit0)
996+
let config_digit0 = u8::from_str_radix(config_digit0, 16);
997+
if let Ok(version_config) =
998+
config_digit0.map(<ConfigDigit0 as FromPrimitive>::from_u8)
999999
{
10001000
println!(" Version: {:?} ({})", version_config, version);
10011001
} else {
1002-
println!(" Version: {}", version);
1002+
println!(" Version: '{}'", version);
10031003
}
10041004
}
10051005
if let Some(manufacturer) = dmidecode_string_val(&data.manufacturer()) {
@@ -1014,10 +1014,37 @@ fn smbios_info() {
10141014
if let Some(sku_number) = dmidecode_string_val(&data.sku_number()) {
10151015
println!(" SKU Number: {}", sku_number);
10161016
}
1017+
if let Some(sn) = dmidecode_string_val(&data.serial_number()) {
1018+
println!(" Serial Number:{}", sn);
1019+
}
10171020
if let Some(family) = dmidecode_string_val(&data.family()) {
10181021
println!(" Family: {}", family);
10191022
}
10201023
}
1024+
DefinedStruct::BaseBoardInformation(data) => {
1025+
println!("BaseBoard Information");
1026+
if let Some(version) = dmidecode_string_val(&data.version()) {
1027+
// Assumes it's ASCII, which is guaranteed by SMBIOS
1028+
let config_digit0 = &version[0..1];
1029+
let config_digit0 = u8::from_str_radix(config_digit0, 16);
1030+
if let Ok(version_config) =
1031+
config_digit0.map(<ConfigDigit0 as FromPrimitive>::from_u8)
1032+
{
1033+
println!(" Version: {:?} ({})", version_config, version);
1034+
} else {
1035+
println!(" Version: '{}'", version);
1036+
}
1037+
}
1038+
if let Some(manufacturer) = dmidecode_string_val(&data.manufacturer()) {
1039+
println!(" Manufacturer: {}", manufacturer);
1040+
}
1041+
if let Some(product_name) = dmidecode_string_val(&data.product()) {
1042+
println!(" Product: {}", product_name);
1043+
}
1044+
if let Some(sn) = dmidecode_string_val(&data.serial_number()) {
1045+
println!(" Serial Number:{}", sn);
1046+
}
1047+
}
10211048
_ => {}
10221049
}
10231050
}

0 commit comments

Comments
 (0)