From e0c1d080b520c1bbd2dcd7bc90a750f5ce580486 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 9 Oct 2017 23:03:56 +0200 Subject: doc: Add an example to the documentation of the udev-service. * doc/guix.texi (Base Services): Update 'udev-service' documentation. --- doc/guix.texi | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 6018198567..b7f4f88f92 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9790,8 +9790,32 @@ Return a service that runs the Guix build daemon according to @var{config}. @end deffn -@deffn {Scheme Procedure} udev-service [#:udev udev] +@cindex udev-service +@cindex udev-rule +@deffn {Scheme Procedure} udev-service [#:udev @var{udev}] [#:rules @var{'()}] Run @var{udev}, which populates the @file{/dev} directory dynamically. +Additional udev rules can be provided as a list of files through the +@var{rules} variable. The procedure @var{udev-rule} simplifies the +creation of these rule files. + +In the following example, a rule for a USB device is defined to be +stored in the file @file{90-usb-thing.rules}, and the default +@var{udev-service} is extended with it. The rule runs a script upon +detecting a USB device with a given product identifier. + +@example +(define %example-udev-rule + (udev-rule "90-usb-thing.rules" + "ACTION==\"add\", SUBSYSTEM==\"usb\", ATTR@{product@}==\"Example\", RUN+=\"/path/to/script\"")) + +(operating-system + ;; @dots{} + (services (modify-services %desktop-services + (udev-service-type config => + (udev-configuration (inherit config) + (rules (append (udev-configuration-rules config) + (list %example-udev-rule)))))))) +@end example @end deffn @deffn {Scheme Procedure} urandom-seed-service @var{#f} -- cgit 1.4.1