diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2025-07-06 16:31:00 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2025-07-18 00:57:25 +0200 |
| commit | 62bf9a7cc79d24e7edc2b56d6dde6e77eebc537e (patch) | |
| tree | 7b741e39aa7321e51c8c5d041d1111ee5418ff2e /gnu/system/mapped-devices.scm | |
| parent | 951e39718a00cf3f91e8c8d4b4b5661715a27416 (diff) | |
mapped-devices: Add ‘arguments’ field.
Fixes <https://issues.guix.gnu.org/70826>.
This allows users to specify extra arguments specific to the underlying
mapped device type.
* gnu/system/mapped-devices.scm (<mapped-device>)[arguments]: New field.
(device-mapping-service-type): Honor it.
* guix/scripts/system.scm (check-mapped-devices): Likewise.
* gnu/system/linux-initrd.scm (raw-initrd): Likewise.
* doc/guix.texi (Mapped Devices): Document it.
Reported-by: 45mg <45mg.writes@gmail.com>
Change-Id: Idef5a3e68535c412f13bae9a92c81c49053d4f4a
Diffstat (limited to 'gnu/system/mapped-devices.scm')
| -rw-r--r-- | gnu/system/mapped-devices.scm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 667a4955703..c09a0f1ef17 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014-2022, 2024 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2022, 2024-2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz> @@ -51,6 +51,7 @@ mapped-device-target mapped-device-targets mapped-device-type + mapped-device-arguments mapped-device-location mapped-device-kind @@ -83,6 +84,8 @@ (source mapped-device-source) ;string | list of strings (targets mapped-device-targets) ;list of strings (type mapped-device-type) ;<mapped-device-kind> + (arguments mapped-device-arguments ;list passed to open/close/check + (default '())) (location mapped-device-location (default (current-source-location)) (innate))) @@ -128,13 +131,16 @@ specifications to 'targets'." 'device-mapping (match-lambda (($ <mapped-device> source targets - ($ <mapped-device-type> open close modules)) + ($ <mapped-device-type> open close modules) + arguments) (shepherd-service (provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-"))))) (requirement '(udev)) (documentation "Map a device node using Linux's device mapper.") - (start #~(lambda () #$(open source targets))) - (stop #~(lambda _ (not #$(close source targets)))) + (start #~(lambda () + #$(apply open source targets arguments))) + (stop #~(lambda _ + (not #$(apply close source targets arguments)))) (modules (append %default-modules modules)) (respawn? #f)))) (description "Map a device node using Linux's device mapper."))) |
