Rename the sgdisk_info_extract_uuid_field to
sgdisk_info_extract_field in order to reuse it for other field types.
Just like its C ancestor, it now needs an extractor function to be
passed as parameter.
---
daemon/parted.ml | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/daemon/parted.ml b/daemon/parted.ml
index d6638867a..6fe803613 100644
--- a/daemon/parted.ml
+++ b/daemon/parted.ml
@@ -124,12 +124,11 @@ let part_get_parttype device =
| _ ->
failwithf "%s: cannot parse the output of parted" device
-let rec part_get_gpt_type device partnum =
- sgdisk_info_extract_uuid_field device partnum "Partition GUID code"
-and part_get_gpt_guid device partnum =
- sgdisk_info_extract_uuid_field device partnum "Partition unique GUID"
+let extract_guid value =
+ (* The value contains only valid GUID characters. *)
+ String.sub value 0 (String.span value "-0123456789ABCDEF")
-and sgdisk_info_extract_uuid_field device partnum field =
+let sgdisk_info_extract_field device partnum field extractor =
if partnum <= 0 then failwith "partition number must be >= 1";
udev_settle ();
@@ -167,13 +166,16 @@ and sgdisk_info_extract_uuid_field device partnum field =
(* Skip any whitespace after the colon. *)
let value = String.triml value in
- (* Extract the UUID. *)
- extract_uuid value
+ (* Extract the value. *)
+ extractor value
| _ :: lines -> loop lines
in
loop lines
-and extract_uuid value =
- (* The value contains only valid GUID characters. *)
- String.sub value 0 (String.span value "-0123456789ABCDEF")
+let rec part_get_gpt_type device partnum =
+ sgdisk_info_extract_field device partnum "Partition GUID code"
+ extract_guid
+and part_get_gpt_guid device partnum =
+ sgdisk_info_extract_field device partnum "Partition unique GUID"
+ extract_guid
--
2.15.1