diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index f7c6983cb0..000e85eb86 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -104,14 +104,24 @@ ;; objects. (service shepherd-root-service-type '())) -(define-syntax-rule (shepherd-service-type service-name proc) - "Return a 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 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.