~ruther/guix-local

28ca80717da67f90a3b33491e9807a053cf09c2d — Julien Lepiller 2 years ago fd11d7f
guix: Properly compute progress bar width.

* guix/progress.scm (progress-reporter/bar): Take font width into account to
compute progress bar width.
* guix/git.scm (show-progress): Take font width into account to compute
progress bar width.

Change-Id: I946e447c1ea7c6eb4ff805400280f39e8f1a7c02
2 files changed, 6 insertions(+), 2 deletions(-)

M guix/git.scm
M guix/progress.scm
M guix/git.scm => guix/git.scm +3 -1
@@ 33,6 33,8 @@
  #:use-module (guix store)
  #:use-module (guix utils)
  #:use-module (guix records)
  #:use-module ((guix build syscalls)
                #:select (terminal-string-width))
  #:use-module (guix gexp)
  #:autoload   (guix git-download)
  (git-reference-url git-reference-commit git-reference-recursive?)


@@ 154,7 156,7 @@ the 'SSL_CERT_FILE' and 'SSL_CERT_DIR' environment variables."
  ;; TODO: Both should be handled & exposed by the PROGRESS-BAR API instead.
  (define width
    (max (- (current-terminal-columns)
            (string-length label) 7)
            (terminal-string-width label) 7)
         3))

  (define grain

M guix/progress.scm => guix/progress.scm +3 -1
@@ 21,6 21,8 @@

(define-module (guix progress)
  #:use-module (guix records)
  #:use-module ((guix build syscalls)
                #:select (terminal-string-width))
  #:use-module (srfi srfi-19)
  #:use-module (rnrs io ports)
  #:use-module (rnrs bytevectors)


@@ 307,7 309,7 @@ tasks is performed.  Write PREFIX at the beginning of the line."
      (if (string-null? prefix)
          (display (progress-bar ratio (current-terminal-columns)) port)
          (let ((width (- (current-terminal-columns)
                          (string-length prefix) 3)))
                          (terminal-string-width prefix) 3)))
            (display prefix port)
            (display "  " port)
            (display (progress-bar ratio width) port)))