guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shepherd] 01/02: service: Simplify 'register-services'.


From: Ludovic Courtès
Subject: [shepherd] 01/02: service: Simplify 'register-services'.
Date: Mon, 8 Oct 2018 09:51:57 -0400 (EDT)

civodul pushed a commit to branch master
in repository shepherd.

commit b1fdcb823ca35b0d114112b5151d2d7f11229cb8
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 28 22:43:32 2018 +0200

    service: Simplify 'register-services'.
    
    * modules/shepherd/service.scm (register-services)[register-single-service]:
    Simplify by using 'assert'.
---
 modules/shepherd/service.scm | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm
index 43cf5a7..34a55a1 100644
--- a/modules/shepherd/service.scm
+++ b/modules/shepherd/service.scm
@@ -1102,22 +1102,12 @@ is currently stopped, replace it immediately."
                   (let ((old (lookup-services name)))
                     (hashq-set! %services name (cons new old))))
                 (provided-by new)))
-      ((old) ;; one service registered, so it may be an old version of us
-       (cond
-        ((not (eq? (canonical-name new) (canonical-name old)))
-         (local-output
-          "Cannot register service ~a: canonical name is not unique."
-          (canonical-name new))
-         (throw 'non-canonical-name))
-        ((running? old)
-         (slot-set! old 'replacement new))
-        (else
-         (replace-service old new))))
-      (_ ;; in any other case, there are too many services to register
-       (local-output
-        "Cannot register service ~a: canonical name is not unique."
-        (canonical-name new))
-       (throw 'non-canonical-name))))
+      ((old . rest) ;; one service registered, it may be an old version of us
+       (assert (null? rest))
+       (assert (eq? (canonical-name new) (canonical-name old)))
+       (if (running? old)
+           (slot-set! old 'replacement new)
+           (replace-service old new)))))
 
   (for-each register-single-service new-services))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]