From 6673bddc9ae8f8835a8676cfb3ca0f5b9eb29405 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 31 Aug 2016 15:16:36 +0200 Subject: services: shepherd: Parameterize 'shepherd-service-back-edges'. * gnu/services/shepherd.scm (shepherd-service-back-edges): Add #:provision and #:requirement parameter. Honor them. --- gnu/services/shepherd.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'gnu/services/shepherd.scm') diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 3cfca8574e..426b0e7290 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -268,11 +268,17 @@ procedure that takes a service and returns the list of symbols it provides." ((_ . service) service) (#f #f))))) -(define (shepherd-service-back-edges services) +(define* (shepherd-service-back-edges services + #:key + (provision shepherd-service-provision) + (requirement shepherd-service-requirement)) "Return a procedure that, when given a from SERVICES, -returns the list of that depend on it." +returns the list of that depend on it. + +Use PROVISION and REQUIREMENT as one-argument procedures that return the +symbols provided/required by a service." (define provision->service - (shepherd-service-lookup-procedure services)) + (shepherd-service-lookup-procedure services provision)) (define edges (fold (lambda (service edges) @@ -280,7 +286,7 @@ returns the list of that depend on it." (vhash-consq (provision->service requirement) service edges)) edges - (shepherd-service-requirement service))) + (requirement service))) vlist-null services)) -- cgit 1.4.1