civodul pushed a commit to branch master in repository shepherd. commit b1fdcb823ca35b0d114112b5151d2d7f11229cb8 Author: Ludovic Courtès <l...@gnu.org> 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))