system: Factorize operating-system-boot-parameters-file.
* gnu/system.scm (operating-system-boot-parameters): New variable. (operating-system-boot-parameters-file): Modify.
This commit is contained in:
parent
3339abfeff
commit
40fad1c24c
|
@ -769,27 +769,49 @@ device in a <menu-entry>."
|
||||||
((label) (file-system-device fs))
|
((label) (file-system-device fs))
|
||||||
(else #f)))
|
(else #f)))
|
||||||
|
|
||||||
(define (operating-system-boot-parameters-file os)
|
(define (operating-system-boot-parameters os system root-device)
|
||||||
"Return a file that describes the boot parameters of OS. The primary use of
|
"Return a monadic <boot-parameters> record that describes the boot parameters of OS.
|
||||||
this file is the reconstruction of GRUB menu entries for old configurations."
|
SYSTEM is optional. If given, adds kernel arguments for that system to <boot-parameters>."
|
||||||
(mlet %store-monad ((initrd (operating-system-initrd-file os))
|
(mlet* %store-monad
|
||||||
(root -> (operating-system-root-file-system os))
|
((initrd (operating-system-initrd-file os))
|
||||||
(store -> (operating-system-store-file-system os))
|
(store -> (operating-system-store-file-system os))
|
||||||
(label -> (kernel->boot-label
|
(label -> (kernel->boot-label (operating-system-kernel os))))
|
||||||
(operating-system-kernel os))))
|
(return (boot-parameters
|
||||||
(gexp->file "parameters"
|
(label label)
|
||||||
#~(boot-parameters
|
(root-device root-device)
|
||||||
(version 0)
|
(kernel (operating-system-kernel-file os))
|
||||||
(label #$label)
|
(kernel-arguments
|
||||||
(root-device #$(file-system-device root))
|
(operating-system-user-kernel-arguments os))
|
||||||
(kernel #$(operating-system-kernel-file os))
|
(initrd initrd)
|
||||||
(kernel-arguments
|
(store-device (fs->boot-device store))
|
||||||
#$(operating-system-user-kernel-arguments os))
|
(store-mount-point (file-system-mount-point store))))))
|
||||||
(initrd #$initrd)
|
|
||||||
(store
|
(define* (operating-system-boot-parameters-file os #:optional (system.drv #f))
|
||||||
(device #$(fs->boot-device store))
|
"Return a file that describes the boot parameters of OS. The primary use of
|
||||||
(mount-point #$(file-system-mount-point store))))
|
this file is the reconstruction of GRUB menu entries for old configurations.
|
||||||
#:set-load-path? #f)))
|
SYSTEM.DRV is optional. If given, adds kernel arguments for that system to the
|
||||||
|
returned file (since the returned file is then usually stored into the
|
||||||
|
content-addressed \"system\" directory, it's usually not a good idea
|
||||||
|
to give it because the content hash would change by the content hash
|
||||||
|
being stored into the \"parameters\" file)."
|
||||||
|
(mlet* %store-monad ((root -> (operating-system-root-file-system os))
|
||||||
|
(device -> (file-system-device root))
|
||||||
|
(params (operating-system-boot-parameters os
|
||||||
|
system.drv
|
||||||
|
device)))
|
||||||
|
(gexp->file "parameters"
|
||||||
|
#~(boot-parameters
|
||||||
|
(version 0)
|
||||||
|
(label #$(boot-parameters-label params))
|
||||||
|
(root-device #$(boot-parameters-root-device params))
|
||||||
|
(kernel #$(boot-parameters-kernel params))
|
||||||
|
(kernel-arguments
|
||||||
|
#$(boot-parameters-kernel-arguments params))
|
||||||
|
(initrd #$(boot-parameters-initrd params))
|
||||||
|
(store
|
||||||
|
(device #$(boot-parameters-store-device params))
|
||||||
|
(mount-point #$(boot-parameters-store-mount-point params))))
|
||||||
|
#:set-load-path? #f)))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
Loading…
Reference in New Issue