diff options
author | tiantian <typ22@foxmail.com> | 2022-09-05 01:25:42 +0800 |
---|---|---|
committer | Julien Lepiller <julien@lepiller.eu> | 2022-09-08 22:30:43 +0200 |
commit | 32da9bbc91d365f514ae41528587905b21c41825 (patch) | |
tree | 743e3299fc5abbaa43fb7a3bf0d3cbeee0a5679e | |
parent | 1fc20e4c86697e9d112b9fed8079334c818dd78e (diff) | |
download | guix-32da9bbc91d365f514ae41528587905b21c41825.tar.gz guix-32da9bbc91d365f514ae41528587905b21c41825.zip |
gnu: bootloader: Report error in menu-entry.
* gnu/bootloader.scm (report-menu-entry-error): New procedure.
(menu-entry->sexp): Add a call to `report-menu-entry-error'.
Co-Authored-By: Julien Lepiller <julien@lepiller.eu>
Signed-off-by: Julien Lepiller <julien@lepiller.eu>
-rw-r--r-- | gnu/bootloader.scm | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm index 9fe6b65212..da65b9d5d5 100644 --- a/gnu/bootloader.scm +++ b/gnu/bootloader.scm @@ -34,6 +34,8 @@ #:use-module (guix diagnostics) #:use-module (guix i18n) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (menu-entry menu-entry? @@ -110,6 +112,23 @@ (chain-loader menu-entry-chain-loader (default #f))) ; string, path of efi file +(define (report-menu-entry-error menu-entry) + (raise + (condition + (&message + (message + (format #f (G_ "invalid menu-entry: ~a") menu-entry))) + (&fix-hint + (hint + (G_ "Please chose only one of: +@enumerate +@item direct boot by specifying fields @code{linux}, +@code{linux-arguments} and @code{linux-modules}, +@item multiboot by specifying fields @code{multiboot-kernel}, +@code{multiboot-arguments} and @code{multiboot-modules}, +@item chain-loader by specifying field @code{chain-loader}. +@end enumerate")))))) + (define (menu-entry->sexp entry) "Return ENTRY serialized as an sexp." (define (device->sexp device) @@ -146,7 +165,8 @@ (label ,label) (device ,(device->sexp device)) (device-mount-point ,mount-point) - (chain-loader ,chain-loader))))) + (chain-loader ,chain-loader))) + (_ (report-menu-entry-error entry)))) (define (sexp->menu-entry sexp) "Turn SEXP, an sexp as returned by 'menu-entry->sexp', into a <menu-entry> |