hw_inventory: fix json parsing

Add support for both lshw -json return formats.
The json structure may follow one of the following.

output:list flag enabled:
[{content}]

output:list flag disabled:
{content}

The output:list flag was defined in the commit 2b1c730 of
https://ezix.org/src/pkg/lshw
master
Alejandro Sirgo Rica 2024-12-11 13:36:16 +01:00
parent 855768e144
commit bf15491435
1 changed files with 3 additions and 3 deletions

View File

@ -293,10 +293,10 @@ def legacy_list_hardware_inventory(inventory):
def get_hardware_inventory():
proc = subprocess.run(['lshw', '-json'], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
j = json.loads(proc.stdout)
root = json.loads(proc.stdout)
if type(j) is list:
root = j[0]
if type(root) is list:
root = root[0]
if type(root) is not dict:
raise OgError('Invalid lshw json output')