diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-06-19 21:29:43 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-06-20 00:52:53 +0200 |
commit | 95fa173ed12b832315d119d635b85813bb5317bd (patch) | |
tree | b9140329245556285967235bc525d020d37c328d /guix | |
parent | e0b47290a704c954d00d86e0c120fe44946f29f9 (diff) | |
download | gnu-guix-95fa173ed12b832315d119d635b85813bb5317bd.tar gnu-guix-95fa173ed12b832315d119d635b85813bb5317bd.tar.gz |
store: 'register-path' no longer swallows 'system-error' exceptions.
* guix/store.scm (register-path): Do not catch 'system-error'.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/store.scm | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/guix/store.scm b/guix/store.scm index a64016611d..276684e2fb 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1061,24 +1061,19 @@ Return #t on success. Use with care as it directly modifies the store! This is primarily meant to be used internally by the daemon's build hook." ;; Currently this is implemented by calling out to the fine C++ blob. - (catch 'system-error - (lambda () - (let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program - `(,@(if prefix - `("--prefix" ,prefix) - '()) - ,@(if state-directory - `("--state-directory" ,state-directory) - '()))))) - (and pipe - (begin - (format pipe "~a~%~a~%~a~%" - path (or deriver "") (length references)) - (for-each (cut format pipe "~a~%" <>) references) - (zero? (close-pipe pipe)))))) - (lambda args - ;; Failed to run %GUIX-REGISTER-PROGRAM. - #f))) + (let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program + `(,@(if prefix + `("--prefix" ,prefix) + '()) + ,@(if state-directory + `("--state-directory" ,state-directory) + '()))))) + (and pipe + (begin + (format pipe "~a~%~a~%~a~%" + path (or deriver "") (length references)) + (for-each (cut format pipe "~a~%" <>) references) + (zero? (close-pipe pipe)))))) ;;; |