From d306a4c4e647fd74d6e1d86649490b7d4706ff98 Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Sat, 29 Oct 2022 12:06:37 -0700 Subject: [PATCH] Improve RAM model reporting --- scripts/wk/hw/system.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/wk/hw/system.py b/scripts/wk/hw/system.py index d0f4fc02..8da2ed15 100644 --- a/scripts/wk/hw/system.py +++ b/scripts/wk/hw/system.py @@ -115,6 +115,7 @@ def get_ram_list_linux() -> list[list]: cmd = ['sudo', 'dmidecode', '--type', 'memory'] dimm_list = [] manufacturer = 'Unknown' + part_number = 'Unknown' size = 0 # Get DMI data @@ -125,8 +126,12 @@ def get_ram_list_linux() -> list[list]: for line in dmi_data: line = line.strip() if line == 'Memory Device': + # Add to list + if size and (manufacturer or part_number): + dimm_list.append([size, manufacturer, part_number]) # Reset vars manufacturer = 'Unknown' + part_number = 'Unknown' size = 0 elif line.startswith('Size:'): size = line.replace('Size: ', '') @@ -137,7 +142,18 @@ def get_ram_list_linux() -> list[list]: size = 0 elif line.startswith('Manufacturer:'): manufacturer = line.replace('Manufacturer: ', '') - dimm_list.append([size, manufacturer]) + elif line.startswith('Part Number: '): + part_number = line.replace('Part Number: ', '') + + # Add last DIMM + if size and (manufacturer or part_number): + dimm_list.append([size, manufacturer, part_number]) + + # Cleanup list + dimm_list = [ + [dimm[0], dimm[1] if dimm[1] != 'Unknown' else dimm[2]] + for dimm in dimm_list + ] # Save details return dimm_list