~ruther/guix-local

3e31ec827a887eda2d13f5fb7b7f61e222b2169d — Ludovic Courtès 10 years ago b3129f2
download: 'uri-abbreviation' can abbreviate the URI's basename.

* guix/build/download.scm (uri-abbreviation): Use 'ellipsis' instead of
"...".  Abbreviate the basename of PATH if needed.
1 files changed, 12 insertions(+), 7 deletions(-)

M guix/build/download.scm
M guix/build/download.scm => guix/build/download.scm +12 -7
@@ 202,13 202,18 @@ abbreviation of URI showing the scheme, host, and basename of the file."
    (uri->string uri))

  (define (elide-path)
    (let ((path (uri-path uri)))
      (string-append (symbol->string (uri-scheme uri)) "://"

                     ;; `file' URIs have no host part.
                     (or (uri-host uri) "")

                     (string-append "/.../" (basename path)))))
    (let* ((path   (uri-path uri))
           (base   (basename path))
           (prefix (string-append (symbol->string (uri-scheme uri)) "://"

                                  ;; `file' URIs have no host part.
                                  (or (uri-host uri) "")

                                  (string-append "/" (ellipsis) "/"))))
      (if (> (+ (string-length prefix) (string-length base)) max-length)
          (string-append prefix (ellipsis)
                         (string-drop base (quotient (string-length base) 2)))
          (string-append prefix base))))

  (if (> (string-length uri-as-string) max-length)
      (let ((short (elide-path)))