@@ -328,22 +328,27 @@ (define-syntax-rule (unless-file-not-found exp)
#f
(apply throw args)))))
+(define (generation->boot-parameters profile number)
+ "Return the 'boot-parameters' for the generation of PROFILE specified
+by NUMBER."
+ (unless-file-not-found
+ (let* ((system (generation-file-name profile number))
+ (params (read-boot-parameters-file system))
+ (epoch (stat:mtime (lstat system)))
+ (text (boot-parameters-label params)))
+ (boot-parameters
+ (inherit params)
+ (label (decorated-boot-label text number epoch))))))
+
(define* (profile->boot-alternatives #:optional (profile %system-profile)
(numbers
(reverse (generation-numbers profile))))
"Return a list of 'boot-parameters' for the generations of PROFILE specified
by NUMBERS, which is a list of generation numbers. The list is ordered from
the most recent to the oldest profiles."
- (define (generation->boot-parameters number)
- (unless-file-not-found
- (let* ((system (generation-file-name profile number))
- (params (read-boot-parameters-file system))
- (epoch (stat:mtime (lstat system)))
- (text (boot-parameters-label params)))
- (boot-parameters
- (inherit params)
- (label (decorated-boot-label text number epoch))))))
- (filter-map generation->boot-parameters numbers))
+ (filter-map (lambda (number)
+ (generation->boot-parameters profile number))
+ numbers))
;;;
@@ -391,8 +396,7 @@ (define (reinstall-bootloader store number)
(bootloader bootloader)))
;; Make the specified system generation the default entry.
- (params (first (profile->boot-alternatives %system-profile
- (list number))))
+ (params (generation->boot-parameters %system-profile number))
(locale (boot-parameters-locale params))
(store-crypto-devices (boot-parameters-store-crypto-devices params))
(store-directory-prefix
From: Felix Lechner <felix.lechner@lease-up.com> * guix/scripts/system.scm (profile->boot-alternatives)[generation->boot-parameters]: Move to... (generation->boot-parameters): ...here. (reinstall-bootloader): Use procedure above. Change-Id: I51ef1a4fa8fd18104d28a6a845707d7dedde3782 --- guix/scripts/system.scm | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-)