services: 'shepherd-service-type' now accepts a default value.

* gnu/services/shepherd.scm (shepherd-service-type): Add a second form
with an additional 'default' parameter.
This commit is contained in:
Ludovic Courtès 2018-03-15 11:34:57 +01:00
parent 61b1dbbdcd
commit 88cd7bbd3d
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 18 additions and 8 deletions

View File

@ -104,14 +104,24 @@
;; <shepherd-service> objects.
(service shepherd-root-service-type '()))
(define-syntax-rule (shepherd-service-type service-name proc)
"Return a <service-type> denoting a simple shepherd service--i.e., the type
for a service that extends SHEPHERD-ROOT-SERVICE-TYPE and nothing else."
(service-type
(name service-name)
(extensions
(list (service-extension shepherd-root-service-type
(compose list proc))))))
(define-syntax shepherd-service-type
(syntax-rules ()
"Return a <service-type> denoting a simple shepherd service--i.e., the type
for a service that extends SHEPHERD-ROOT-SERVICE-TYPE and nothing else. When
DEFAULT is given, use it as the service's default value."
((_ service-name proc default)
(service-type
(name service-name)
(extensions
(list (service-extension shepherd-root-service-type
(compose list proc))))
(default-value default)))
((_ service-name proc)
(service-type
(name service-name)
(extensions
(list (service-extension shepherd-root-service-type
(compose list proc))))))))
(define %default-imported-modules
;; Default set of modules imported for a service's consumption.