store: 'register-path' no longer swallows 'system-error' exceptions.

* guix/store.scm (register-path): Do not catch 'system-error'.
master
Ludovic Courtès 2016-06-19 21:29:43 +02:00
parent e0b47290a7
commit 95fa173ed1
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 13 additions and 18 deletions

View File

@ -1061,24 +1061,19 @@ Return #t on success.
Use with care as it directly modifies the store! This is primarily meant to Use with care as it directly modifies the store! This is primarily meant to
be used internally by the daemon's build hook." be used internally by the daemon's build hook."
;; Currently this is implemented by calling out to the fine C++ blob. ;; Currently this is implemented by calling out to the fine C++ blob.
(catch 'system-error (let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program
(lambda () `(,@(if prefix
(let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program `("--prefix" ,prefix)
`(,@(if prefix '())
`("--prefix" ,prefix) ,@(if state-directory
'()) `("--state-directory" ,state-directory)
,@(if state-directory '())))))
`("--state-directory" ,state-directory) (and pipe
'()))))) (begin
(and pipe (format pipe "~a~%~a~%~a~%"
(begin path (or deriver "") (length references))
(format pipe "~a~%~a~%~a~%" (for-each (cut format pipe "~a~%" <>) references)
path (or deriver "") (length references)) (zero? (close-pipe pipe))))))
(for-each (cut format pipe "~a~%" <>) references)
(zero? (close-pipe pipe))))))
(lambda args
;; Failed to run %GUIX-REGISTER-PROGRAM.
#f)))
;;; ;;;