mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
system: Introduce read-boot-parameters-file.
* gnu/system.scm (read-boot-parameters): Remove export. (read-boot-parameters-file): New variable. Export it. * guix/scripts/system.scm (profile-boot-parameters): Use read-boot-parameters-file. (profile-grub-entries): Use read-boot-parameters-file. (reinstall-grub): Use read-boot-parameters-file. (display-system-generation): Use read-boot-parameters-file.
This commit is contained in:
parent
33f0aa8815
commit
9530e73b49
2 changed files with 25 additions and 11 deletions
|
@ -109,7 +109,7 @@ (define-module (gnu system)
|
|||
boot-parameters-kernel
|
||||
boot-parameters-kernel-arguments
|
||||
boot-parameters-initrd
|
||||
read-boot-parameters
|
||||
read-boot-parameters-file
|
||||
|
||||
local-host-aliases
|
||||
%setuid-programs
|
||||
|
@ -907,4 +907,24 @@ (define (read-boot-parameters port)
|
|||
system)
|
||||
#f)))
|
||||
|
||||
(define (read-boot-parameters-file system)
|
||||
"Read boot parameters from SYSTEM's (system or generation) \"parameters\"
|
||||
file and returns the corresponding <boot-parameters> object or #f if the
|
||||
format is unrecognized.
|
||||
The object has its kernel-arguments extended in order to make it bootable."
|
||||
(let* ((file (string-append system "/parameters"))
|
||||
(params (call-with-input-file file read-boot-parameters))
|
||||
(root (boot-parameters-root-device params))
|
||||
(root-device (if (bytevector? root)
|
||||
(uuid->string root)
|
||||
root))
|
||||
(kernel-arguments (boot-parameters-kernel-arguments params)))
|
||||
(if params
|
||||
(boot-parameters
|
||||
(inherit params)
|
||||
(kernel-arguments (bootable-kernel-arguments kernel-arguments
|
||||
system
|
||||
root-device)))
|
||||
#f)))
|
||||
|
||||
;;; system.scm ends here
|
||||
|
|
|
@ -369,9 +369,7 @@ (define* (profile-boot-parameters #:optional (profile %system-profile)
|
|||
NUMBERS, which is a list of generation numbers."
|
||||
(define (system->boot-parameters system number time)
|
||||
(unless-file-not-found
|
||||
(let* ((file (string-append system "/parameters"))
|
||||
(params (call-with-input-file file
|
||||
read-boot-parameters)))
|
||||
(let* ((params (read-boot-parameters-file system)))
|
||||
params)))
|
||||
(let* ((systems (map (cut generation-file-name profile <>)
|
||||
numbers))
|
||||
|
@ -387,9 +385,7 @@ (define* (profile-grub-entries #:optional (profile %system-profile)
|
|||
NUMBERS, which is a list of generation numbers."
|
||||
(define (system->grub-entry system number time)
|
||||
(unless-file-not-found
|
||||
(let* ((file (string-append system "/parameters"))
|
||||
(params (call-with-input-file file
|
||||
read-boot-parameters))
|
||||
(let* ((params (read-boot-parameters-file system))
|
||||
(label (boot-parameters-label params))
|
||||
(root (boot-parameters-root-device params))
|
||||
(root-device (if (bytevector? root)
|
||||
|
@ -447,9 +443,8 @@ (define (reinstall-grub store number)
|
|||
"Re-install grub for existing system profile generation NUMBER. STORE is an
|
||||
open connection to the store."
|
||||
(let* ((generation (generation-file-name %system-profile number))
|
||||
(file (string-append generation "/parameters"))
|
||||
(params (unless-file-not-found
|
||||
(call-with-input-file file read-boot-parameters)))
|
||||
(read-boot-parameters-file generation)))
|
||||
(root-device (boot-parameters-root-device params))
|
||||
;; We don't currently keep track of past menu entries' details. The
|
||||
;; default values will allow the system to boot, even if they differ
|
||||
|
@ -533,8 +528,7 @@ (define* (display-system-generation number
|
|||
"Display a summary of system generation NUMBER in a human-readable format."
|
||||
(unless (zero? number)
|
||||
(let* ((generation (generation-file-name profile number))
|
||||
(param-file (string-append generation "/parameters"))
|
||||
(params (call-with-input-file param-file read-boot-parameters))
|
||||
(params (read-boot-parameters-file generation))
|
||||
(label (boot-parameters-label params))
|
||||
(root (boot-parameters-root-device params))
|
||||
(root-device (if (bytevector? root)
|
||||
|
|
Loading…
Reference in a new issue