summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-09-13 16:01:36 +0200
committerLudovic Courtès <ludo@gnu.org>2017-09-16 17:47:46 +0200
commitb714395a39fffc60f75408504a23dfe27ad13fc2 (patch)
tree0ddf0e4f385d0809ad0d0d1ce67aa0b3128f74fb
parentc7ae219e399804a8eb33f176e532a79b389ee1f1 (diff)
downloadpatches-b714395a39fffc60f75408504a23dfe27ad13fc2.tar
patches-b714395a39fffc60f75408504a23dfe27ad13fc2.tar.gz
services: Add a description and location for each service type.
* gnu/services.scm (<service-type>)[description, location]: New field. * doc/guix.texi (Service Types and Services): Document 'description'.
-rw-r--r--doc/guix.texi4
-rw-r--r--gnu/services.scm13
2 files changed, 16 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index c9505f41d7..b2eed51bd0 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -18020,6 +18020,10 @@ Udev extensions are composed into a list of rules, but the udev service
value is itself a @code{<udev-configuration>} record. So here, we
extend that record by appending the list of rules it contains to the
list of contributed rules.
+
+@item description
+This is a string giving an overview of the service type. The string can
+contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).
@end table
There can be only one instance of an extensible service type such as
diff --git a/gnu/services.scm b/gnu/services.scm
index 8ef1ae7c77..83a163b766 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -49,6 +49,9 @@
service-type-compose
service-type-extend
service-type-default-value
+ service-type-description
+ service-type-location
+
service
service?
@@ -145,7 +148,15 @@
;; Optional default value for instances of this type.
(default-value service-type-default-value ;Any
- (default &no-default-value)))
+ (default &no-default-value))
+
+ ;; Meta-data.
+ (description service-type-description ;string
+ (default #f))
+ (location service-type-location ;<location>
+ (default (and=> (current-source-location)
+ source-properties->location))
+ (innate)))
(define (write-service-type type port)
(format port "#<service-type ~a ~a>"