bootloader: Use 'invoke/quiet' when running 'grub-install' and co.

This hides potentially confusing GRUB messages from the user, such as
"Installing for i386-pc platform."

* gnu/bootloader/extlinux.scm (install-extlinux): Use 'invoke/quiet'
instead of 'system*' and 'error'.
* gnu/bootloader/grub.scm (install-grub, install-grub-efi): Likewise.
* guix/scripts/system.scm (bootloader-installer-script): Guard against
'message-condition?' and handle them properly.
This commit is contained in:
Ludovic Courtès 2019-03-16 17:09:19 +01:00
parent f0cc5e7e1e
commit 21fcfe1ee9
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 22 additions and 15 deletions

View File

@ -91,11 +91,9 @@ TIMEOUT ~a~%"
(for-each (lambda (file)
(install-file file install-dir))
(find-files syslinux-dir "\\.c32$"))
(unless
(and (zero? (system* extlinux "--install" install-dir))
(write-file-on-device
(string-append syslinux-dir "/" #$mbr) 440 device 0))
(error "failed to install SYSLINUX")))))
(invoke/quiet extlinux "--install" install-dir)
(write-file-on-device (string-append syslinux-dir "/" #$mbr)
440 device 0))))
(define install-extlinux-mbr
(install-extlinux "mbr.bin"))

View File

@ -369,10 +369,11 @@ submenu \"GNU system, old configurations...\" {~%")
;; root partition.
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
(unless (zero? (system* grub "--no-floppy" "--target=i386-pc"
"--boot-directory" install-dir
device))
(error "failed to install GRUB (BIOS)")))))
;; Hide potentially confusing messages from the user, such as
;; "Installing for i386-pc platform."
(invoke/quiet grub "--no-floppy" "--target=i386-pc"
"--boot-directory" install-dir
device))))
(define install-grub-efi
#~(lambda (bootloader efi-dir mount-point)
@ -388,10 +389,9 @@ submenu \"GNU system, old configurations...\" {~%")
;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
;; root partition.
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
(unless (zero? (system* grub-install "--boot-directory" install-dir
"--bootloader-id=Guix"
"--efi-directory" target-esp))
(error "failed to install GRUB (EFI)")))))
(invoke/quiet grub-install "--boot-directory" install-dir
"--bootloader-id=Guix"
"--efi-directory" target-esp))))

View File

@ -808,8 +808,17 @@ and TARGET arguments."
#~(begin
(use-modules (gnu build bootloader)
(guix build utils)
(ice-9 binary-ports))
(#$installer #$bootloader #$device #$target)))))
(ice-9 binary-ports)
(srfi srfi-34)
(srfi srfi-35))
(guard (c ((message-condition? c) ;XXX: i18n
(format (current-error-port) "error: ~a~%"
(condition-message c))
(exit 1)))
(#$installer #$bootloader #$device #$target)
(format #t "bootloader successfully installed on '~a'~%"
device))))))
(define* (perform-action action os
#:key skip-safety-checks?