~ruther/guix-local

cf5e58297d441e5e8f93e104f23eb3d18b2b51c9 — Ludovic Courtès 10 years ago 3e31ec8
substitute: Better abbreviate substitute URL in progress report.

Suggested by Danny Milosavljevic <dannym@scratchpost.org>.

* guix/build/download.scm (nar-uri-abbreviation): New procedure.
* guix/scripts/substitute.scm (process-substitution): Use it instead of
'store-path-abbreviation'.
2 files changed, 15 insertions(+), 3 deletions(-)

M guix/build/download.scm
M guix/scripts/substitute.scm
M guix/build/download.scm => guix/build/download.scm +12 -0
@@ 42,6 42,7 @@
            current-terminal-columns
            progress-proc
            uri-abbreviation
            nar-uri-abbreviation
            store-path-abbreviation))

;;; Commentary:


@@ 222,6 223,17 @@ abbreviation of URI showing the scheme, host, and basename of the file."
            uri-as-string))
      uri-as-string))

(define (nar-uri-abbreviation uri)
  "Abbreviate URI, which is assumed to be the URI of a nar as served by Hydra
and 'guix publish', something like
\"http://example.org/nar/1ldrllwbna0aw5z8kpci4fsvbd2w8cw4-texlive-bin-2015\"."
  (let* ((uri  (if (string? uri) (string->uri uri) uri))
         (path (basename (uri-path uri))))
    (if (and (> (string-length path) 33)
             (char=? (string-ref path 32) #\-))
        (string-drop path 33)
        path)))

(define (ftp-fetch uri file)
  "Fetch data from URI and write it to FILE.  Return FILE on success."
  (let* ((conn (ftp-open (uri-host uri)))

M guix/scripts/substitute.scm => guix/scripts/substitute.scm +3 -3
@@ 32,7 32,7 @@
  #:use-module ((guix build utils) #:select (mkdir-p dump-port))
  #:use-module ((guix build download)
                #:select (current-terminal-columns
                          progress-proc uri-abbreviation
                          progress-proc uri-abbreviation nar-uri-abbreviation
                          open-connection-for-uri
                          close-connection
                          store-path-abbreviation byte-count->string))


@@ 896,11 896,11 @@ DESTINATION as a nar file.  Verify the substitute against ACL."
                          (dl-size  (or download-size
                                        (and (equal? comp "none")
                                             (narinfo-size narinfo))))
                          (progress (progress-proc (uri-abbreviation uri)
                          (progress (progress-proc (uri->string uri)
                                                   dl-size
                                                   (current-error-port)
                                                   #:abbreviation
                                                   store-path-abbreviation)))
                                                   nar-uri-abbreviation)))
                     (progress-report-port progress raw)))
                  ((input pids)
                   (decompressed-port (and=> (narinfo-compression narinfo)