services: dmd: Spawn a REPL upon failure to load a service definition.

Fixes <http://bugs.gnu.org/19779>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/services/dmd.scm (dmd-configuration-file)[config]: Wrap
'primitive-load' calls in 'call-with-error-handling'.
This commit is contained in:
Ludovic Courtès 2015-11-25 11:57:56 +01:00
parent 3177149797
commit b9c7ed71b1
1 changed files with 7 additions and 1 deletions

View File

@ -223,7 +223,13 @@ stored."
(set! %load-compiled-path
(cons #$compiled %load-compiled-path)))
(apply register-services (map primitive-load '#$files))
(use-modules (system repl error-handling))
;; Arrange to spawn a REPL if loading one of FILES fails. This is
;; better than a kernel panic.
(call-with-error-handling
(lambda ()
(apply register-services (map primitive-load '#$files))))
;; guix-daemon 0.6 aborts if 'PATH' is undefined, so work around it.
(setenv "PATH" "/run/current-system/profile/bin")