summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan (janneke) Nieuwenhuizen <janneke@gnu.org>2020-06-11 22:52:12 +0200
committerJan Nieuwenhuizen <janneke@gnu.org>2020-06-13 15:03:55 +0200
commit7ca533c7237622d70b423033c4506217d9ce4014 (patch)
tree4a4d6e3c9def39dcf3a511089b34f060be3d4d82
parent3857aba7ab25c50d64a6d7468d2b5b09bc4f5d60 (diff)
downloadguix-7ca533c7237622d70b423033c4506217d9ce4014.tar.gz
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.
-rw-r--r--gnu/system/image.scm28
-rw-r--r--gnu/tests/install.scm9
-rw-r--r--guix/scripts/system.scm4
3 files changed, 22 insertions, 19 deletions
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 6c4573509d..be8b6e67f7 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -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 @@ image, depending on IMAGE format."
         #: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
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 6bd8c7d3d2..db355b85ca 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -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 @@ packages defined in installation-os."
 
   (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
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 3d7aa77cb7..6769a602b1 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -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 @@ static checks."
       (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