From aa1e73a996ad170fecac848f203528aeb3d2173e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 2 Aug 2016 22:57:09 +0200 Subject: guix system: Properly report Shepherd errors when upgrading services. Fixes regression introduced in 8bf92e3904cb656d4c2160fc8befebaf21a65492. Reported by myglc2 in . * guix/scripts/system.scm (with-shepherd-error-handling): Rename 'body' to 'mbody'. Expand to a monadic procedure that runs MBODY. --- guix/scripts/system.scm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'guix/scripts') diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index e2c6b2efee..992acdbca2 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -236,11 +236,15 @@ BODY..., and restore them." (with-monad %store-monad (return #f))))) -(define-syntax-rule (with-shepherd-error-handling body ...) - (warn-on-system-error - (guard (c ((shepherd-error? c) - (report-shepherd-error c))) - body ...))) +(define-syntax-rule (with-shepherd-error-handling mbody ...) + "Catch and report Shepherd errors that arise when binding MBODY, a monadic +expression in %STORE-MONAD." + (lambda (store) + (warn-on-system-error + (guard (c ((shepherd-error? c) + (report-shepherd-error c))) + (values (run-with-store store (begin mbody ...)) + store))))) (define (report-shepherd-error error) "Report ERROR, a '&shepherd-error' error condition object." -- cgit v1.2.3