[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))