mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 11:43:25 +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;
|
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** ret = hw_create_disks();
|
||||||
struct hw_disk** disks = ret;
|
struct hw_disk** disks = ret;
|
||||||
|
|
||||||
@@ -192,15 +192,15 @@ struct hw_disk** hw_find_disks(struct hw* hw) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// DEVTYPE must be disk (otherwise we will see all sorts of partitions here)
|
// Skip sourcedrive if we need to
|
||||||
const char* devtype = udev_device_get_property_value(dev, "DEVTYPE");
|
if (sourcedrive && (strcmp(dev_path, sourcedrive) == 0)) {
|
||||||
if (devtype && (strcmp(devtype, "disk") != 0)) {
|
|
||||||
udev_device_unref(dev);
|
udev_device_unref(dev);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip all source mediums
|
// DEVTYPE must be disk (otherwise we will see all sorts of partitions here)
|
||||||
if (hw_test_source_medium(dev_path) == 0) {
|
const char* devtype = udev_device_get_property_value(dev, "DEVTYPE");
|
||||||
|
if (devtype && (strcmp(devtype, "disk") != 0)) {
|
||||||
udev_device_unref(dev);
|
udev_device_unref(dev);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ int hw_umount(const char* target);
|
|||||||
|
|
||||||
char* hw_find_source_medium(struct hw* hw);
|
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);
|
void hw_free_disks(struct hw_disk** disks);
|
||||||
unsigned int hw_count_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);
|
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;
|
int part_type = HW_PART_TYPE_NORMAL;
|
||||||
|
|
||||||
// Scan for disks to install on.
|
// 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;
|
struct hw_disk** selected_disks = NULL;
|
||||||
unsigned int num_selected_disks = 0;
|
unsigned int num_selected_disks = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user