mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
Offer a uniform decorated-boot-label and use it.
* gnu/system/boot.scm (decorated-boot-label): New procedure. * gnu/machine/ssh.scm (machine-boot-parameters): Use decorated-boot-label. * guix/scripts/system.scm (profile-boot-parameters)[system->boot-parameters]: Use decorated-boot-label. Change-Id: Id348c3047df2353f76b1bad0eb2a3e0fa17e474c
This commit is contained in:
parent
42d65fe2eb
commit
5ec2223c71
3 changed files with 18 additions and 11 deletions
|
@ -459,15 +459,11 @@ (define (read-file path)
|
||||||
(let* ((params (call-with-input-string serialized-params
|
(let* ((params (call-with-input-string serialized-params
|
||||||
read-boot-parameters))
|
read-boot-parameters))
|
||||||
(root (boot-parameters-root-device params))
|
(root (boot-parameters-root-device params))
|
||||||
(label (boot-parameters-label params))
|
(text (boot-parameters-label params))
|
||||||
(version (boot-parameters-version params)))
|
(version (boot-parameters-version params)))
|
||||||
(boot-parameters
|
(boot-parameters
|
||||||
(inherit params)
|
(inherit params)
|
||||||
(label
|
(label (decorated-boot-label text generation epoch))
|
||||||
(string-append label " (#"
|
|
||||||
(number->string generation) ", "
|
|
||||||
(epoch->date-string epoch)
|
|
||||||
")"))
|
|
||||||
(kernel-arguments
|
(kernel-arguments
|
||||||
(append (bootable-kernel-arguments system-path root version)
|
(append (bootable-kernel-arguments system-path root version)
|
||||||
(boot-parameters-kernel-arguments params))))))))
|
(boot-parameters-kernel-arguments params))))))))
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
;;; Copyright © 2020 Janneke Nieuwenhuizen <jannek@gnu.org>
|
;;; Copyright © 2020 Janneke Nieuwenhuizen <jannek@gnu.org>
|
||||||
;;; Copyright © 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||||
|
;;; Copyright © 2024 Felix Lechner <felix.lechner@lease-up.com>
|
||||||
|
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -66,6 +68,7 @@ (define-module (gnu system boot)
|
||||||
bootable-kernel-arguments
|
bootable-kernel-arguments
|
||||||
|
|
||||||
epoch->date-string
|
epoch->date-string
|
||||||
|
decorated-boot-label
|
||||||
boot-parameters->menu-entry
|
boot-parameters->menu-entry
|
||||||
|
|
||||||
ensure-not-/dev
|
ensure-not-/dev
|
||||||
|
@ -298,6 +301,16 @@ (define (epoch->date-string epoch)
|
||||||
(date->string (time-utc->date time)
|
(date->string (time-utc->date time)
|
||||||
"~Y-~m-~d ~H:~M")))
|
"~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 ((count (and generation
|
||||||
|
(string-append "#" (number->string generation))))
|
||||||
|
(timestamp (and=> epoch epoch->date-string)))
|
||||||
|
(match (filter identity (list count timestamp))
|
||||||
|
(() text)
|
||||||
|
(extras (string-append text "(" (string-join extras ", ") ")")))))
|
||||||
|
|
||||||
(define (boot-parameters->menu-entry conf)
|
(define (boot-parameters->menu-entry conf)
|
||||||
"Return a <menu-entry> instance given CONF, a <boot-parameters> instance."
|
"Return a <menu-entry> instance given CONF, a <boot-parameters> instance."
|
||||||
(let* ((kernel (boot-parameters-kernel conf))
|
(let* ((kernel (boot-parameters-kernel conf))
|
||||||
|
|
|
@ -337,12 +337,10 @@ (define* (profile-boot-parameters #:optional (profile %system-profile)
|
||||||
(define (system->boot-parameters system number epoch)
|
(define (system->boot-parameters system number epoch)
|
||||||
(unless-file-not-found
|
(unless-file-not-found
|
||||||
(let* ((params (read-boot-parameters-file system))
|
(let* ((params (read-boot-parameters-file system))
|
||||||
(label (boot-parameters-label params)))
|
(text (boot-parameters-label params)))
|
||||||
(boot-parameters
|
(boot-parameters
|
||||||
(inherit params)
|
(inherit params)
|
||||||
(label (string-append label " (#"
|
(label (decorated-boot-label text number epoch))))))
|
||||||
(number->string number) ", "
|
|
||||||
(epoch->date-string epoch) ")"))))))
|
|
||||||
(let* ((systems (map (cut generation-file-name profile <>)
|
(let* ((systems (map (cut generation-file-name profile <>)
|
||||||
numbers))
|
numbers))
|
||||||
(times (map (lambda (system)
|
(times (map (lambda (system)
|
||||||
|
|
Loading…
Reference in a new issue