>From f3d21e3ec8a100a966153d03264639ebe48e8872 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 25 Jan 2016 11:18:00 +0300 Subject: [PATCH] service: Improve 'service-list'. * modules/shepherd/service.scm (service-list): Use 'lookup-canonical-service' on each name instead of removing duplicates from the final list. --- modules/shepherd/service.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm index f84d1dd..94f2aae 100644 --- a/modules/shepherd/service.scm +++ b/modules/shepherd/service.scm @@ -871,12 +871,13 @@ Return #f if service is not found." (define (service-list) "Return the list of services currently defined." - (delete-duplicates - (hash-fold (lambda (key services result) - (append services result)) - '() - %services) - eq?)) + (hash-fold (lambda (name services result) + (let ((service (lookup-canonical-service name services))) + (if service + (cons service result) + result))) + '() + %services)) (define (find-service pred) "Return the first service that matches PRED, or #f if none was found." -- 2.6.3