GNU bug report logs -
#29509
[PATCH 0/6] Display progress bar in 'guix system init'
Previous Next
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Thu, 30 Nov 2017 13:47:02 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Until now it would print the name of each store item being copied, which
was verbose and unhelpful.
* guix/scripts/system.scm (copy-closure): Use 'progress-reporter/bar'
and 'call-with-progress-reporter'.
(guix-system): Parameterize 'current-terminal-columns'.
---
guix/scripts/system.scm | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index acfa5fdbf..91d151d22 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -36,6 +36,8 @@
#:use-module (guix graph)
#:use-module (guix scripts graph)
#:use-module (guix build utils)
+ #:use-module (guix progress)
+ #:use-module ((guix build syscalls) #:select (terminal-columns))
#:use-module (gnu build install)
#:autoload (gnu build file-systems)
(find-partition-by-label find-partition-by-uuid)
@@ -141,8 +143,18 @@ REFERENCES as its set of references."
TARGET, and register them."
(mlet* %store-monad ((to-copy (topologically-sorted* (list item)))
(refs (mapm %store-monad references* to-copy)))
- (for-each (cut copy-item <> <> target #:log-port log-port)
- to-copy refs)
+ (define progress-bar
+ (progress-reporter/bar (length to-copy)
+ (format #f (G_ "copying to '~a'...")
+ target)))
+
+ (call-with-progress-reporter progress-bar
+ (lambda (report)
+ (let ((void (%make-void-port "w")))
+ (for-each (lambda (item refs)
+ (copy-item item refs target #:log-port void)
+ (report))
+ to-copy refs))))
(return *unspecified*)))
@@ -1092,7 +1104,8 @@ argument list and OPTS is the option alist."
parse-sub-command))
(args (option-arguments opts))
(command (assoc-ref opts 'action)))
- (parameterize ((%graft? (assoc-ref opts 'graft?)))
+ (parameterize ((%graft? (assoc-ref opts 'graft?))
+ (current-terminal-columns (terminal-columns)))
(process-command command args opts)))))
;;; Local Variables:
--
2.15.0
This bug report was last modified 7 years and 222 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.