mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 02:42:09 +02:00
Board: detect serial number
This commit is contained in:
@@ -7,6 +7,7 @@ typedef struct FFBoardResult
|
||||
FFstrbuf name;
|
||||
FFstrbuf vendor;
|
||||
FFstrbuf version;
|
||||
FFstrbuf serial;
|
||||
} FFBoardResult;
|
||||
|
||||
const char* ffDetectBoard(FFBoardResult* board);
|
||||
|
||||
@@ -6,6 +6,8 @@ const char* ffDetectBoard(FFBoardResult* result)
|
||||
{
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.product", &result->name);
|
||||
ffCleanUpSmbiosValue(&result->name);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.serial", &result->serial);
|
||||
ffCleanUpSmbiosValue(&result->serial);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.maker", &result->vendor);
|
||||
ffCleanUpSmbiosValue(&result->vendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.version", &result->version);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
const char* ffDetectBoard(FFBoardResult* board)
|
||||
{
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->name);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_serial", "/sys/class/dmi/id/board_serial", &board->serial);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->vendor);
|
||||
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->version);
|
||||
return NULL;
|
||||
|
||||
@@ -28,6 +28,8 @@ const char* ffDetectBoard(FFBoardResult* board)
|
||||
|
||||
ffStrbufSetStatic(&board->name, ffSmbiosLocateString(strings, data->Product));
|
||||
ffCleanUpSmbiosValue(&board->name);
|
||||
ffStrbufSetStatic(&board->serial, ffSmbiosLocateString(strings, data->SerialNumber));
|
||||
ffCleanUpSmbiosValue(&board->serial);
|
||||
ffStrbufSetStatic(&board->vendor, ffSmbiosLocateString(strings, data->Manufacturer));
|
||||
ffCleanUpSmbiosValue(&board->vendor);
|
||||
ffStrbufSetStatic(&board->version, ffSmbiosLocateString(strings, data->Version));
|
||||
|
||||
@@ -12,8 +12,9 @@ void ffPrintBoard(FFBoardOptions* options)
|
||||
ffStrbufInit(&result.name);
|
||||
ffStrbufInit(&result.vendor);
|
||||
ffStrbufInit(&result.version);
|
||||
const char* error = ffDetectBoard(&result);
|
||||
ffStrbufInit(&result.serial);
|
||||
|
||||
const char* error = ffDetectBoard(&result);
|
||||
if(error)
|
||||
{
|
||||
ffPrintError(FF_BOARD_MODULE_NAME, 0, &options->moduleArgs, "%s", error);
|
||||
@@ -40,6 +41,7 @@ void ffPrintBoard(FFBoardOptions* options)
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result.name},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result.vendor},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result.version},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result.serial},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -47,6 +49,7 @@ exit:
|
||||
ffStrbufDestroy(&result.name);
|
||||
ffStrbufDestroy(&result.vendor);
|
||||
ffStrbufDestroy(&result.version);
|
||||
ffStrbufDestroy(&result.serial);
|
||||
}
|
||||
|
||||
bool ffParseBoardCommandOptions(FFBoardOptions* options, const char* key, const char* value)
|
||||
@@ -90,6 +93,7 @@ void ffGenerateBoardJsonResult(FF_MAYBE_UNUSED FFBoardOptions* options, yyjson_m
|
||||
ffStrbufInit(&board.name);
|
||||
ffStrbufInit(&board.vendor);
|
||||
ffStrbufInit(&board.version);
|
||||
ffStrbufInit(&board.serial);
|
||||
|
||||
const char* error = ffDetectBoard(&board);
|
||||
|
||||
@@ -109,11 +113,13 @@ void ffGenerateBoardJsonResult(FF_MAYBE_UNUSED FFBoardOptions* options, yyjson_m
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "name", &board.name);
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "vendor", &board.vendor);
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "version", &board.version);
|
||||
yyjson_mut_obj_add_strbuf(doc, obj, "serial", &board.serial);
|
||||
|
||||
exit:
|
||||
ffStrbufDestroy(&board.name);
|
||||
ffStrbufDestroy(&board.vendor);
|
||||
ffStrbufDestroy(&board.version);
|
||||
ffStrbufDestroy(&board.serial);
|
||||
}
|
||||
|
||||
void ffPrintBoardHelpFormat(void)
|
||||
@@ -121,7 +127,8 @@ void ffPrintBoardHelpFormat(void)
|
||||
ffPrintModuleFormatHelp(FF_BOARD_MODULE_NAME, "{1} ({3})", FF_BOARD_NUM_FORMAT_ARGS, (const char* []) {
|
||||
"board name",
|
||||
"board vendor",
|
||||
"board version"
|
||||
"board version",
|
||||
"board serial number",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ bool ffIsSmbiosValueSet(FFstrbuf* value)
|
||||
!ffStrbufIgnCaseEqualS(value, "Not Available") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "INVALID") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "Type1ProductConfigId") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "No Enclosure") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "All Series") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "N/A")
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user