store: Add #:store parameter to 'register-path'.

* guix/store.scm (register-path): Add #:store and honor it.
This commit is contained in:
Ludovic Courtès 2014-05-17 00:08:39 +02:00
parent 87a52da7d0
commit e901ef297d
1 changed files with 8 additions and 4 deletions

View File

@ -797,17 +797,21 @@ signing them if SIGN? is true."
(loop tail))))))) (loop tail)))))))
(define* (register-path path (define* (register-path path
#:key (references '()) deriver) #:key (references '()) deriver store)
"Register PATH as a valid store file, with REFERENCES as its list of "Register PATH as a valid store file, with REFERENCES as its list of
references, and DERIVER as its deriver (.drv that led to it.) Return #t on references, and DERIVER as its deriver (.drv that led to it.) If STORE is not
success. #f, it must be a string denoting the directory name of the new store to
initialize. 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 (catch 'system-error
(lambda () (lambda ()
(let ((pipe (open-pipe* OPEN_WRITE %guix-register-program))) (let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program
(if store
`("--prefix" ,store)
'()))))
(and pipe (and pipe
(begin (begin
(format pipe "~a~%~a~%~a~%" (format pipe "~a~%~a~%~a~%"