gnu: bootloader: Match records outside the module.

* gnu/bootloader.scm (match-bootloader-configuration, match-menu-entry):
Add macros.

Change-Id: I42cb7541045314c37ffef98fe6efe7f46acd9d9b
This commit is contained in:
Herman Rimm 2024-09-15 19:16:24 +02:00 committed by Ryan Schanzenbacher
parent 79fe92ae16
commit 10d2fc5890
Signed by: ryan77627
GPG key ID: 81B0E222A3E2308E

View file

@ -8,6 +8,7 @@
;;; Copyright © 2022 Reza Alizadeh Majd <r.majd@pantherx.org>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2024 Lilah Tascheter <lilah@lunabee.space>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@ -115,6 +116,9 @@ (define-module (gnu bootloader)
bootloader-configuration->gexp
bootloader-configurations->gexp
match-bootloader-configuration
match-menu-entry
%efi-supported-systems
efi-arch
install-efi
@ -642,6 +646,20 @@ (define (bootloader-configurations->gexp bootloader-configs . rest)
(apply gbegin (filter-map (cut apply bootloader-configuration->gexp <> rest)
bootloader-configs)))
;; In lieu of exporting bootloader-configuration and menu-entry RTDs.
(define-syntax match-bootloader-configuration
(syntax-rules ()
"Bind each BOOTLOADER-CONFIGURATION field in FIELDS."
((_ bootloader-configuration (fields ...) body ...)
(match-record bootloader-configuration <bootloader-configuration>
(fields ...) body ...))))
(define-syntax match-menu-entry
(syntax-rules ()
"Bind each MENU-ENTRY field in FIELDS."
((_ menu-entry (fields ...) body ...)
(match-record menu-entry <menu-entry> (fields ...) body ...))))
;;;
;;; Bootloader installation to ESP.