summaryrefslogtreecommitdiff
path: root/doc/guix.texi
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-10-09 23:03:56 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-10-13 08:39:16 +0200
commite0c1d080b520c1bbd2dcd7bc90a750f5ce580486 (patch)
tree4fd3f522474daf929204806a2e1a7ab20ee0fb5b /doc/guix.texi
parentb38e41790338c53a33403ed574938612b596891f (diff)
doc: Add an example to the documentation of the udev-service.
* doc/guix.texi (Base Services): Update 'udev-service' documentation.
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi26
1 files changed, 25 insertions, 1 deletions
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}