Maxim Cournoyer <maxim.courno...@gmail.com> writes: >> I am not sure having different semantics for restart and any other >> action is a good idea though. >> >> But what I think would be a good idea is for start, stop, restart to >> signal an error when additional unexpected arguments are provided. > > Failing to change the behavior as suggested, that would still be an > improvement, yes. But then you'd also be special casing these actions, > as actions are designed to receive an arbitrary number of arguments and > cannot forcibly know which ones are really used/necessary in advance?
But the default implementation of `restart' knows it takes no arguments. So something like the following. --8<---------------cut here---------------start------------->8--- diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm index 79d14cf..68c4cca 100644 --- a/modules/shepherd/service.scm +++ b/modules/shepherd/service.scm @@ -1115,6 +1115,10 @@ the action." ;; Restarting is done in the obvious way. ((restart) (lambda (running . args) + (unless (null? args) + (local-output + (l10n "Action `restart' of ~a takes no arguments.") + (service-canonical-name service))) (let ((stopped-services (stop-service service))) (for-each start-service (remove transient-service? stopped-services)) --8<---------------cut here---------------end--------------->8--- Dunno, just an (untested) idea. ¯\_(ツ)_/¯ Tomas -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.