mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
image: Make 'find-image' non-monadic.
* gnu/system/image.scm (find-image): Make non-monadic. Add 'target' parameter. * gnu/tests/install.scm (run-install): Update caller, passing (%current-target-system). * guix/scripts/system.scm (perform-action): Likewise.
This commit is contained in:
parent
3857aba7ab
commit
7ca533c723
3 changed files with 22 additions and 19 deletions
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -556,20 +557,17 @@ (define substitutable? (image-substitutable? image))
|
|||
#:grub-mkrescue-environment
|
||||
'(("MKRESCUE_SED_MODE" . "mbr_only")))))))
|
||||
|
||||
(define (find-image file-system-type)
|
||||
"Find and return an image that could match the given FILE-SYSTEM-TYPE. This
|
||||
is useful to adapt to interfaces written before the addition of the <image>
|
||||
record."
|
||||
(mlet %store-monad ((target (current-target-system)))
|
||||
(mbegin %store-monad
|
||||
(return
|
||||
(match file-system-type
|
||||
("iso9660" iso9660-image)
|
||||
(_ (cond
|
||||
((and target
|
||||
(hurd-triplet? target))
|
||||
hurd-disk-image)
|
||||
(else
|
||||
efi-disk-image))))))))
|
||||
(define (find-image file-system-type target)
|
||||
"Find and return an image built that could match the given FILE-SYSTEM-TYPE,
|
||||
built for TARGET. This is useful to adapt to interfaces written before the
|
||||
addition of the <image> record."
|
||||
(match file-system-type
|
||||
("iso9660" iso9660-image)
|
||||
(_ (cond
|
||||
((and target
|
||||
(hurd-triplet? target))
|
||||
hurd-disk-image)
|
||||
(else
|
||||
efi-disk-image)))))
|
||||
|
||||
;;; image.scm ends here
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -227,15 +228,17 @@ (define* (run-install target-os target-os-source
|
|||
|
||||
(mlet* %store-monad ((_ (set-grafting #f))
|
||||
(system (current-system))
|
||||
(target (operating-system-derivation target-os))
|
||||
(base-image (find-image
|
||||
installation-disk-image-file-system-type))
|
||||
(target (current-target-system))
|
||||
(base-image -> (find-image
|
||||
installation-disk-image-file-system-type
|
||||
target))
|
||||
|
||||
;; Since the installation system has no network access,
|
||||
;; we cheat a little bit by adding TARGET to its GC
|
||||
;; roots. This way, we know 'guix system init' will
|
||||
;; succeed. Also add guile-final, which is pulled in
|
||||
;; through provenance.drv and may not always be present.
|
||||
(target (operating-system-derivation target-os))
|
||||
(image ->
|
||||
(system-image
|
||||
(image
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -801,7 +802,8 @@ (define bootcfg
|
|||
(check-initrd-modules os)))
|
||||
|
||||
(mlet* %store-monad
|
||||
((image (find-image file-system-type))
|
||||
((target (current-target-system))
|
||||
(image -> (find-image file-system-type target))
|
||||
(sys (system-derivation-for-action os image action
|
||||
#:file-system-type file-system-type
|
||||
#:image-size image-size
|
||||
|
|
Loading…
Reference in a new issue