~ruther/guix-local

6c41cce0bee19b3a18edc82b17d5a8a110971ac6 — Ludovic Courtès 12 years ago c67cced
offload: Wait for the processes involved in 'guix archive --missing'.

* guix/scripts/offload.scm (send-files): Keep the second return value of
  'filtered-port'.  Call 'waitpid' on it.
1 files changed, 13 insertions(+), 9 deletions(-)

M guix/scripts/offload.scm
M guix/scripts/offload.scm => guix/scripts/offload.scm +13 -9
@@ 26,6 26,7 @@
  #:use-module ((guix build utils) #:select (which mkdir-p))
  #:use-module (guix ui)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-11)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-35)


@@ 356,15 357,18 @@ with exit code ~a~%"
success, #f otherwise."
  (define (missing-files files)
    ;; Return the subset of FILES not already on MACHINE.
    (let* ((files   (format #f "~{~a~%~}" files))
           (missing (filtered-port
                     (list (which %lshg-command)
                           "-l" (build-machine-user machine)
                           "-p" (number->string (build-machine-port machine))
                           "-i" (build-machine-private-key machine)
                           (build-machine-name machine)
                           "guix" "archive" "--missing")
                     (open-input-string files))))
    (let*-values (((files)
                   (format #f "~{~a~%~}" files))
                  ((missing pids)
                   (filtered-port
                    (list (which %lshg-command)
                          "-l" (build-machine-user machine)
                          "-p" (number->string (build-machine-port machine))
                          "-i" (build-machine-private-key machine)
                          (build-machine-name machine)
                          "guix" "archive" "--missing")
                    (open-input-string files))))
      (for-each waitpid pids)
      (string-tokenize (get-string-all missing))))

  (with-store store