doc: Add an example to the documentation of the udev-service.

* doc/guix.texi (Base Services): Update 'udev-service' documentation.
This commit is contained in:
Ricardo Wurmus 2017-10-09 23:03:56 +02:00
parent b38e417903
commit e0c1d080b5
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -9790,8 +9790,32 @@ Return a service that runs the Guix build daemon according to
@var{config}. @var{config}.
@end deffn @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. 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 @end deffn
@deffn {Scheme Procedure} urandom-seed-service @var{#f} @deffn {Scheme Procedure} urandom-seed-service @var{#f}