~ruther/guix-local

cc7fa5929c26fcdd53ce83ce7a46de4dfc7af1a2 — Ludovic Courtès 11 years ago f4c4513
guix system: Use 'mbegin' for 'install'.

* guix/scripts/system.scm (install): Use 'mbegin'.  Lift FORMAT and
  POPULATE-ROOT-FILE-SYSTEM, and use the result.
1 files changed, 16 insertions(+), 12 deletions(-)

M guix/scripts/system.scm
M guix/scripts/system.scm => guix/scripts/system.scm +16 -12
@@ 151,18 151,22 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG."
            ;; Copy items to the new store.
            (copy-closure to-copy target #:log-port log-port)))))

  (mlet* %store-monad ((os-dir -> (derivation->output-path os-drv))
                       (%         (maybe-copy os-dir)))

    ;; Create a bunch of additional files.
    (format log-port "populating '~a'...~%" target)
    (populate-root-file-system os-dir target)

    (when grub?
      (unless (false-if-exception (install-grub grub.cfg device target))
        (leave (_ "failed to install GRUB on device '~a'~%") device)))

    (return #t)))
  (let ((os-dir   (derivation->output-path os-drv))
        (format   (lift %store-monad format))
        (populate (lift2 %store-monad populate-root-file-system)))

    (mbegin %store-monad
      (maybe-copy os-dir)

      ;; Create a bunch of additional files.
      (format log-port "populating '~a'...~%" target)
      (populate os-dir target)

      (begin
        (when grub?
          (unless (false-if-exception (install-grub grub.cfg device target))
            (leave (_ "failed to install GRUB on device '~a'~%") device)))
        (return #t)))))


;;;