guix system: Use 'mbegin' for 'install'.

* guix/scripts/system.scm (install): Use 'mbegin'.  Lift FORMAT and
  POPULATE-ROOT-FILE-SYSTEM, and use the result.
This commit is contained in:
Ludovic Courtès 2014-12-01 23:07:11 +01:00
parent f4c4513d47
commit cc7fa5929c
1 changed files with 13 additions and 9 deletions

View File

@ -151,18 +151,22 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG."
;; Copy items to the new store. ;; Copy items to the new store.
(copy-closure to-copy target #:log-port log-port))))) (copy-closure to-copy target #:log-port log-port)))))
(mlet* %store-monad ((os-dir -> (derivation->output-path os-drv)) (let ((os-dir (derivation->output-path os-drv))
(% (maybe-copy os-dir))) (format (lift %store-monad format))
(populate (lift2 %store-monad populate-root-file-system)))
;; Create a bunch of additional files. (mbegin %store-monad
(format log-port "populating '~a'...~%" target) (maybe-copy os-dir)
(populate-root-file-system os-dir target)
(when grub? ;; Create a bunch of additional files.
(unless (false-if-exception (install-grub grub.cfg device target)) (format log-port "populating '~a'...~%" target)
(leave (_ "failed to install GRUB on device '~a'~%") device))) (populate os-dir target)
(return #t))) (begin
(when grub?
(unless (false-if-exception (install-grub grub.cfg device target))
(leave (_ "failed to install GRUB on device '~a'~%") device)))
(return #t)))))
;;; ;;;