diff --git a/daemon/blkid.c b/daemon/blkid.c index a6197308d..108eee6f0 100644 --- a/daemon/blkid.c +++ b/daemon/blkid.c @@ -64,3 +64,15 @@ do_vfs_type (const char *device) { return get_blkid_tag (device, "TYPE"); } + +char * +do_vfs_label (const char *device) +{ + return get_blkid_tag (device, "LABEL"); +} + +char * +do_vfs_uuid (const char *device) +{ + return get_blkid_tag (device, "UUID"); +} diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR index 2197544d0..f1aaa9059 100644 --- a/src/MAX_PROC_NR +++ b/src/MAX_PROC_NR @@ -1 +1 @@ -252 +254 diff --git a/src/generator.ml b/src/generator.ml index 58eaee452..85a867e04 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -4754,6 +4754,29 @@ Do not confuse this with the guestfish-specific C and C commands which create a file in the host and attach it as a device."); + ("vfs_label", (RString "label", [Device "device"]), 253, [], + [InitBasicFS, Always, TestOutput ( + [["set_e2label"; "/dev/sda1"; "LTEST"]; + ["vfs_label"; "/dev/sda1"]], "LTEST")], + "get the filesystem label", + "\ +This returns the filesystem label of the filesystem on +C. + +If the filesystem is unlabeled, this returns the empty string."); + + ("vfs_uuid", (RString "uuid", [Device "device"]), 254, [], + (let uuid = uuidgen () in + [InitBasicFS, Always, TestOutput ( + [["set_e2uuid"; "/dev/sda1"; uuid]; + ["vfs_uuid"; "/dev/sda1"]], uuid)]), + "get the filesystem UUID", + "\ +This returns the filesystem UUID of the filesystem on +C. + +If the filesystem does not have a UUID, this returns the empty string."); + ] let all_functions = non_daemon_functions @ daemon_functions