From 99e676db43389af3a9e4c21734987c086fcaa8ed Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 11 Feb 2020 23:56:45 -0500 Subject: file-systems: Add a 'file-system-device->string' procedure. * gnu/system/file-systems.scm (file-system-device->string): New procedure. * gnu/system.scm (bootable-kernel-arguments): Use it. * gnu/system/vm.scm (operating-system-uuid): Likewise. * guix/scripts/system.scm (display-system-generation): Likewise. --- gnu/system/file-systems.scm | 15 +++++++++++++++ gnu/system/vm.scm | 8 +------- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'gnu/system') diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index d47a514b66..3b599efa8e 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -30,6 +30,7 @@ #:export (file-system file-system? file-system-device + file-system-device->string file-system-title ;deprecated file-system-mount-point file-system-type @@ -235,6 +236,20 @@ where both FILE1 and FILE2 are absolute file name. For example: (() #f))))))) +(define* (file-system-device->string device #:key uuid-type) + "Return the string representations of the DEVICE field of a +record. When the device is a UUID, its representation is chosen depending on +UUID-TYPE, a symbol such as 'dce or 'iso9660." + (match device + ((? file-system-label?) + (file-system-label->string device)) + ((? uuid?) + (if uuid-type + (uuid->string (uuid-bytevector device) uuid-type) + (uuid->string device))) + ((? string?) + device))) + (define (file-system-needed-for-boot? fs) "Return true if FS has the 'needed-for-boot?' flag set, or if it holds the store--e.g., if FS is the root file system." diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 81b2e06ba2..03a511cdde 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -609,13 +609,7 @@ TYPE (one of 'iso9660 or 'dce). Return a UUID object." (let ((device (file-system-device fs))) (list (file-system-mount-point fs) (file-system-type fs) - (cond ((file-system-label? device) - (file-system-label->string device)) - ((uuid? device) - (uuid->string device)) - ((string? device) - device) - (else #f)) + (file-system-device->string device) (file-system-options fs)))) (if (eq? type 'iso9660) -- cgit v1.2.3