Files
fastfetch/src/detection/disk/disk.c
T

29 lines
1001 B
C
Raw Normal View History

2022-10-06 22:56:56 +08:00
#include "disk.h"
2022-10-17 13:19:48 +02:00
#include "detection/internal.h"
2022-10-06 22:56:56 +08:00
2022-10-17 13:19:48 +02:00
void ffDetectDisksImpl(FFDiskResult* disks);
2022-10-06 22:56:56 +08:00
2022-10-17 13:19:48 +02:00
static int compareDisks(const void* disk1, const void* disk2)
2022-10-06 22:56:56 +08:00
{
2022-10-17 13:19:48 +02:00
return ffStrbufCompAlphabetically(&((const FFDisk*) disk1)->mountpoint, &((const FFDisk*) disk2)->mountpoint);
2022-10-06 22:56:56 +08:00
}
2022-10-17 13:19:48 +02:00
const FFDiskResult* ffDetectDisks()
2022-10-06 22:56:56 +08:00
{
2022-10-17 13:19:48 +02:00
FF_DETECTION_INTERNAL_GUARD(FFDiskResult,
ffStrbufInit(&result.error);
ffListInitA(&result.disks, sizeof(FFDisk), 4);
2022-10-06 22:56:56 +08:00
2022-10-17 13:19:48 +02:00
ffDetectDisksImpl(&result);
2022-10-06 22:56:56 +08:00
2022-10-17 13:19:48 +02:00
if(result.disks.length == 0 && result.error.length == 0)
ffStrbufAppendS(&result.error, "No disks found");
2022-10-06 22:56:56 +08:00
2022-10-17 13:19:48 +02:00
//We need to sort the disks, so that we can detect, which disk a path resides on
// For example for /boot/efi/bootmgr we need to check /boot/efi before /boot
//Note that we sort alphabetically here for a better ordering when printing the list,
// so the check must be done in reverse order
ffListSort(&result.disks, compareDisks);
);
2022-10-06 22:56:56 +08:00
}