diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-05-31 15:06:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-06-02 18:47:06 +0200 |
commit | d9bad2f08296fa73b967973aa6648d24c100980f (patch) | |
tree | de5085a70c2861f8ce2cc0d56c0b0d780d5609e6 /guix | |
parent | 2dc98729afb62e48b5866f599df9a9274d440686 (diff) | |
download | gnu-guix-d9bad2f08296fa73b967973aa6648d24c100980f.tar gnu-guix-d9bad2f08296fa73b967973aa6648d24c100980f.tar.gz |
ui: 'show-what-to-build' displays how much will be downloaded.
* guix/ui.scm (show-what-to-build)[download-size]
[display-download-size?]: New variables.
Add cases for when DISPLAY-DOWNLOAD-SIZE? is true.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/ui.scm | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index 9b64648964..04700a6d20 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -632,6 +632,15 @@ report what is prerequisites are available for download." download)))) download))) ;; TODO: Show the installed size of DOWNLOAD. + (define download-size + (/ (reduce + 0 (map substitutable-download-size download)) + 1e6)) + + (define display-download-size? + ;; Sometimes narinfos lack information about the download size. Only + ;; display when we have information for all of DOWNLOAD. + (not (any (compose zero? substitutable-download-size) download))) + (if dry-run? (begin (format (current-error-port) @@ -639,24 +648,40 @@ report what is prerequisites are available for download." "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" (length build)) (null? build) build) - (format (current-error-port) - (N_ "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" - "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" - (length download)) - (null? download) - (map substitutable-path download))) + (if display-download-size? + (format (current-error-port) + ;; TRANSLATORS: "MB" is for "megabyte"; it should be + ;; translated to the corresponding abbreviation. + (G_ "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]") + (null? download) + download-size + (map substitutable-path download)) + (format (current-error-port) + (N_ "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" + "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" + (length download)) + (null? download) + (map substitutable-path download)))) (begin (format (current-error-port) (N_ "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" (length build)) (null? build) build) - (format (current-error-port) - (N_ "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" - "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" - (length download)) - (null? download) - (map substitutable-path download)))) + (if display-download-size? + (format (current-error-port) + ;; TRANSLATORS: "MB" is for "megabyte"; it should be + ;; translated to the corresponding abbreviation. + (G_ "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]") + (null? download) + download-size + (map substitutable-path download)) + (format (current-error-port) + (N_ "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" + "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" + (length download)) + (null? download) + (map substitutable-path download))))) (pair? build))) (define show-what-to-build* |