mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-13 04:22:58 +02:00
installer: Omit source drive by name
This commit is contained in:
@@ -165,7 +165,7 @@ static unsigned long long hw_block_device_get_size(const char* dev) {
|
||||
return size;
|
||||
}
|
||||
|
||||
struct hw_disk** hw_find_disks(struct hw* hw) {
|
||||
struct hw_disk** hw_find_disks(struct hw* hw, const char* sourcedrive) {
|
||||
struct hw_disk** ret = hw_create_disks();
|
||||
struct hw_disk** disks = ret;
|
||||
|
||||
@@ -192,15 +192,15 @@ struct hw_disk** hw_find_disks(struct hw* hw) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// DEVTYPE must be disk (otherwise we will see all sorts of partitions here)
|
||||
const char* devtype = udev_device_get_property_value(dev, "DEVTYPE");
|
||||
if (devtype && (strcmp(devtype, "disk") != 0)) {
|
||||
// Skip sourcedrive if we need to
|
||||
if (sourcedrive && (strcmp(dev_path, sourcedrive) == 0)) {
|
||||
udev_device_unref(dev);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Skip all source mediums
|
||||
if (hw_test_source_medium(dev_path) == 0) {
|
||||
// DEVTYPE must be disk (otherwise we will see all sorts of partitions here)
|
||||
const char* devtype = udev_device_get_property_value(dev, "DEVTYPE");
|
||||
if (devtype && (strcmp(devtype, "disk") != 0)) {
|
||||
udev_device_unref(dev);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ int hw_umount(const char* target);
|
||||
|
||||
char* hw_find_source_medium(struct hw* hw);
|
||||
|
||||
struct hw_disk** hw_find_disks(struct hw* hw);
|
||||
struct hw_disk** hw_find_disks(struct hw* hw, const char* sourcedrive);
|
||||
void hw_free_disks(struct hw_disk** disks);
|
||||
unsigned int hw_count_disks(struct hw_disk** disks);
|
||||
struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection);
|
||||
|
||||
@@ -384,7 +384,7 @@ int main(int argc, char *argv[]) {
|
||||
int part_type = HW_PART_TYPE_NORMAL;
|
||||
|
||||
// Scan for disks to install on.
|
||||
struct hw_disk** disks = hw_find_disks(hw);
|
||||
struct hw_disk** disks = hw_find_disks(hw, sourcedrive);
|
||||
|
||||
struct hw_disk** selected_disks = NULL;
|
||||
unsigned int num_selected_disks = 0;
|
||||
|
||||
Reference in New Issue
Block a user