summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-11-01 17:55:26 +0100
committerLudovic Courtès <ludo@gnu.org>2015-11-01 17:56:48 +0100
commit2b9e0a948be33ad53825b26fa22b89f13500a7c7 (patch)
tree2307b44647cb1ef13e5114ef80c3f567d8e34a01
parentdaa3b04cd8020e365d3c551bc498363a284f5acf (diff)
downloadguix-2b9e0a948be33ad53825b26fa22b89f13500a7c7.tar.gz
services: Add 'udisks-service'.
* gnu/services/desktop.scm (<udisks-configuration>): New record type.
  (udisks-service-type): New variable.
  (udisks-service): New procedure.
  (%desktop-services): Use it.
* doc/guix.texi (Desktop Services): Document it.
-rw-r--r--doc/guix.texi7
-rw-r--r--gnu/services/desktop.scm33
2 files changed, 40 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 1215c6c277..e8b79ecf98 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6744,6 +6744,13 @@ levels, with the given configuration settings.  It implements the
 GNOME.
 @end deffn
 
+@deffn {Scheme Procedure} udisks-service [#:udisks @var{udisks}]
+Return a service for @uref{http://udisks.freedesktop.org/docs/latest/,
+UDisks}, a @dfn{disk management} daemon that provides user interfaces with
+notifications and ways to mount/unmount disks.  Programs that talk to UDisks
+include the @command{udisksctl} command, part of UDisks, and GNOME Disks.
+@end deffn
+
 @deffn {Scheme Procedure} colord-service [#:colord @var{colord}]
 Return a service that runs @command{colord}, a system service with a D-Bus
 interface to manage the color profiles of input and output devices such as
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index af4fe53dd0..f0ae1085cc 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -43,6 +43,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:export (upower-service
+            udisks-service
             colord-service
             geoclue-application
             %standard-geoclue-applications
@@ -470,6 +471,37 @@ site} for more information."
 
 
 ;;;
+;;; UDisks.
+;;;
+
+(define-record-type* <udisks-configuration>
+  udisks-configuration make-udisks-configuration
+  udisks-configuration?
+  (udisks   udisks-configuration-udisks
+            (default udisks)))
+
+(define udisks-service-type
+  (let ((udisks-package (lambda (config)
+                          (list (udisks-configuration-udisks config)))))
+    (service-type (name 'udisks)
+                  (extensions
+                   (list (service-extension polkit-service-type
+                                            udisks-package)
+                         (service-extension dbus-root-service-type
+                                            udisks-package)
+                         (service-extension udev-service-type
+                                            udisks-package))))))
+
+(define* (udisks-service #:key (udisks udisks))
+  "Return a service for @uref{http://udisks.freedesktop.org/docs/latest/,
+UDisks}, a @dfn{disk management} daemon that provides user interfaces with
+notifications and ways to mount/unmount disks.  Programs that talk to UDisks
+include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
+  (service udisks-service-type
+           (udisks-configuration (udisks udisks))))
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -662,6 +694,7 @@ when they log out."
          ;; The D-Bus clique.
          (avahi-service)
          (wicd-service)
+         (udisks-service)
          (upower-service)
          (colord-service)
          (geoclue-service)