diff mbox series

[bug#41785,v3,1/2] image: Make 'find-image' non-monadic.

Message ID 20200612214214.14112-1-janneke@gnu.org
State Accepted
Headers show
Series [bug#41785,v3,1/2] image: Make 'find-image' non-monadic. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Janneke Nieuwenhuizen June 12, 2020, 9:42 p.m. UTC
* 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.
---
 gnu/system/image.scm    | 22 ++++++++++------------
 gnu/tests/install.scm   |  6 ++++--
 guix/scripts/system.scm |  3 ++-
 3 files changed, 16 insertions(+), 15 deletions(-)

Comments

Mathieu Othacehe June 13, 2020, 10:56 a.m. UTC | #1
Hey Jan,

>                         (system (current-system))
>                         (target (operating-system-derivation target-os))
> -                       (base-image (find-image
> -                                    installation-disk-image-file-system-type))
> +                       (base-image -> (find-image
> +                                       installation-disk-image-file-system-type
> +                                       (%current-target-system)))

This should be:

--8<---------------cut here---------------start------------->8---
(target (current-target-system))
...
(base-image -> (find-image
                installation-disk-image-file-system-type
                target))
--8<---------------cut here---------------end--------------->8---

> +      ((image ->  (find-image file-system-type (%current-target-system)))
>         (sys       (system-derivation-for-action os image action
>                                                  #:file-system-type file-system-type
>                                                  #:image-size image-size

Same here, otherwise this look good to me.

Thanks,

Mathieu
Janneke Nieuwenhuizen June 13, 2020, 1:05 p.m. UTC | #2
Mathieu Othacehe writes:

Hey Mathieu,

>>                         (system (current-system))
>>                         (target (operating-system-derivation target-os))
>> -                       (base-image (find-image
>> -                                    installation-disk-image-file-system-type))
>> +                       (base-image -> (find-image
>> +                                       installation-disk-image-file-system-type
>> +                                       (%current-target-system)))
>
> This should be:
>
> (target (current-target-system))
> ...
> (base-image -> (find-image
>                 installation-disk-image-file-system-type
>                 target))

Ah, right.  Done and moved this

>>                         (target (operating-system-derivation target-os))

down.

>> +      ((image ->  (find-image file-system-type (%current-target-system)))
>>         (sys       (system-derivation-for-action os image action
>>                                                  #:file-system-type file-system-type
>>                                                  #:image-size image-size
>
> Same here, otherwise this look good to me.

Thanks!  Pushed to master as 7ca533c7237622d70b423033c4506217d9ce4014

(probably/hopefully soon to be revisited by your image-catalog feature :-)

Greetings,
Janneke
diff mbox series

Patch

diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index a0e6bf31f1..ac55301a60 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.
 ;;;
@@ -547,20 +548,17 @@  image, depending on IMAGE format."
                              #:grub-mkrescue-environment
                              '(("MKRESCUE_SED_MODE" . "mbr_hfs")))))))
 
-(define (find-image file-system-type)
+(define (find-image file-system-type target)
   "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))))))))
+  (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..82098290f7 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.
 ;;;
@@ -228,8 +229,9 @@  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))
+                       (base-image -> (find-image
+                                       installation-disk-image-file-system-type
+                                       (%current-target-system)))
 
                        ;; Since the installation system has no network access,
                        ;; we cheat a little bit by adding TARGET to its GC
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 3d7aa77cb7..6f3880cc34 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,7 @@  static checks."
       (check-initrd-modules os)))
 
   (mlet* %store-monad
-      ((image     (find-image file-system-type))
+      ((image ->  (find-image file-system-type (%current-target-system)))
        (sys       (system-derivation-for-action os image action
                                                 #:file-system-type file-system-type
                                                 #:image-size image-size