summaryrefslogtreecommitdiffstats
path: root/debian/prep-bootdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'debian/prep-bootdev.c')
-rw-r--r--debian/prep-bootdev.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/debian/prep-bootdev.c b/debian/prep-bootdev.c
new file mode 100644
index 0000000..700a486
--- /dev/null
+++ b/debian/prep-bootdev.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <parted/parted.h>
+
+int
+main(int argc, char *argv[])
+{
+ PedDevice *dev;
+
+ ped_exception_fetch_all();
+ ped_device_probe_all();
+ for (dev = ped_device_get_next(NULL); dev;
+ dev = ped_device_get_next(dev)) {
+ PedDisk *disk;
+ PedPartition *part;
+
+ disk = ped_disk_new(dev);
+ if (!disk)
+ continue;
+
+ for (part = ped_disk_next_partition(disk, NULL); part;
+ part = ped_disk_next_partition(disk, part)) {
+ if (ped_partition_is_active(part) &&
+ ped_partition_get_flag(part, PED_PARTITION_PREP)) {
+ char *path;
+
+ path = ped_partition_get_path(part);
+ if (path) {
+ printf("%s\n", path);
+ free(path);
+ return 0;
+ }
+ free(path);
+ }
+ }
+ }
+
+ return 0;
+}