[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#69343] [PATCH 06/12] Offer a uniform decorated-boot-label and use i
From: |
Felix Lechner |
Subject: |
[bug#69343] [PATCH 06/12] Offer a uniform decorated-boot-label and use it. |
Date: |
Fri, 23 Feb 2024 17:51:39 -0800 |
Change-Id: Id348c3047df2353f76b1bad0eb2a3e0fa17e474c
---
gnu/machine/ssh.scm | 8 ++------
gnu/system/boot.scm | 13 +++++++++++++
guix/scripts/system.scm | 8 +++-----
3 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 449b65dbfb..fe47474470 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -459,15 +459,11 @@ (define (machine-boot-parameters machine)
(let* ((params (call-with-input-string serialized-params
read-boot-parameters))
(root (boot-parameters-root-device params))
- (label (boot-parameters-label params))
+ (text (boot-parameters-label params))
(version (boot-parameters-version params)))
(boot-parameters
(inherit params)
- (label
- (string-append label " (#"
- (number->string generation) ", "
- (epoch->date-string epoch)
- ")"))
+ (label (decorated-boot-label text generation epoch))
(kernel-arguments
(append (bootable-kernel-arguments system-path root version)
(boot-parameters-kernel-arguments params))))))))
diff --git a/gnu/system/boot.scm b/gnu/system/boot.scm
index df04ef92da..f5342e06ca 100644
--- a/gnu/system/boot.scm
+++ b/gnu/system/boot.scm
@@ -66,6 +66,7 @@ (define-module (gnu system boot)
read-boot-parameters-file
epoch->date-string
+ decorated-boot-label
boot-parameters->menu-entry
ensure-not-/dev))
@@ -284,6 +285,18 @@ (define (epoch->date-string epoch)
(date->string (time-utc->date time)
"~Y-~m-~d ~H:~M")))
+(define (decorated-boot-label text generation epoch)
+ "Return a string for a nice boot label that includes TEXT, a numbered
GENERATION,
+and a timestamp derived from EPOCH seconds."
+ (let* ((numbered (lambda (number) (string-append "#" (number->string
number))))
+ (count (and=> generation numbered))
+ (timestamp (and=> epoch epoch->date-string))
+ (extras (filter identity (list count timestamp)))
+ (helpful (if (null? extras)
+ ""
+ (string-append "(" (string-join extras ", ") ")"))))
+ (string-join (list text helpful))))
+
(define (boot-parameters->menu-entry conf)
"Return a <menu-entry> instance given CONF, a <boot-parameters> instance."
(let* ((kernel (boot-parameters-kernel conf))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 47c072ba5c..09d29dbbb1 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -332,12 +332,10 @@ (define* (profile-boot-parameters #:optional (profile
%system-profile)
(define (system->boot-parameters system number epoch)
(unless-file-not-found
(let* ((params (read-boot-parameters-file system))
- (label (boot-parameters-label params)))
+ (text (boot-parameters-label params)))
(boot-parameters
- (inherit params)
- (label (string-append label " (#"
- (number->string number) ", "
- (epoch->date-string epoch) ")"))))))
+ (inherit params)
+ (label (decorated-boot-label text number epoch))))))
(let* ((systems (map (cut generation-file-name profile <>)
numbers))
(times (map (lambda (system)
--
2.41.0
- [bug#69343] [PATCH 00/12] Simplify bootloader data structures and procedures, Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 03/12] Also move boot-parameters->menu-entry., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 11/12] Split generation->boot-parameters out of profile->boot-alternatives., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 08/12] Rename two remote variables confusingly named 'generations'., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 09/12] Give a separate name to a commonly used expression., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 04/12] Rename seconds->string procedure to epoch->date-string., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 10/12] Simplify profile->boot-alternatives., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 06/12] Offer a uniform decorated-boot-label and use it.,
Felix Lechner <=
- [bug#69343] [PATCH 05/12] Move epoch->date-string to gnu/system/boot.scm and use it elsewhere., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 01/12] Fix bug where the extra menu entries for a bootloader were shown twice., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 12/12] Encapsulate <boot-parameters> to retain generation, system-path and epoch., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 07/12] Rename boot-parameters to boot-alternatives when appropriate., Felix Lechner, 2024/02/23
- [bug#69343] [PATCH 02/12] Move <boot-parameters> record to a separate file., Felix Lechner, 2024/02/23