mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
guix gc: Adjust size suffix based on the amount of data.
* guix/ui.scm (number->size): New procedure. * guix/scripts/gc.scm (guix-gc)[actions]: Display the amount of collected-garbage using more specific units. [ensure-free-space]: Display the size using an appropriate size unit. * nix/libstore/gc.cc (deletePathRecursive, removeUnusedLinks): Same. * nix/libstore/optimise-store.cc (showBytes): Move function ... * nix/libstore/misc.cc: ... to here. Expand to adjust the output based on the amount of bytes received. Change-Id: Idceb1a13f8e45f959d327f53d1a8accb29d2678b
This commit is contained in:
parent
cf6868187a
commit
cc588d8eb6
6 changed files with 61 additions and 14 deletions
30
guix/ui.scm
30
guix/ui.scm
|
@ -19,6 +19,7 @@
|
|||
;;; Copyright © 2018 Steve Sprang <scs@stevesprang.com>
|
||||
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
|
||||
;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
|
||||
;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -99,6 +100,7 @@
|
|||
make-regexp*
|
||||
string->number*
|
||||
size->number
|
||||
number->size
|
||||
show-derivation-outputs
|
||||
build-notifier
|
||||
show-what-to-build
|
||||
|
@ -695,6 +697,34 @@ interpreted."
|
|||
(x
|
||||
(leave (G_ "unknown unit: ~a~%") unit)))))))
|
||||
|
||||
(define (number->size num)
|
||||
"Convert NUM, an integer number of bytes, to a human readable string using
|
||||
common storage prefixes."
|
||||
(define (pretty-print-number number exponent)
|
||||
(number->string (inexact->exact (round (/ number (expt 2 exponent))))))
|
||||
|
||||
(unless (number? num)
|
||||
(leave (G_ "invalid number: ~a~%") (object->string num)))
|
||||
|
||||
(cond
|
||||
((> num (expt 2 80))
|
||||
(string-append (pretty-print-number num 80) " YiB"))
|
||||
((> num (expt 2 70))
|
||||
(string-append (pretty-print-number num 70) " ZiB"))
|
||||
((> num (expt 2 60))
|
||||
(string-append (pretty-print-number num 60) " EiB"))
|
||||
((> num (expt 2 50))
|
||||
(string-append (pretty-print-number num 50) " PiB"))
|
||||
((> num (expt 2 40))
|
||||
(string-append (pretty-print-number num 40) " TiB"))
|
||||
((> num (expt 2 30))
|
||||
(string-append (pretty-print-number num 30) " GiB"))
|
||||
((> num (expt 2 20))
|
||||
(string-append (pretty-print-number num 20) " MiB"))
|
||||
((> num (expt 2 10))
|
||||
(string-append (pretty-print-number num 10) " KiB"))
|
||||
(#t (string-append (number->string num) " bytes"))))
|
||||
|
||||
(define (display-collision-resolution-hint collision)
|
||||
"Display hints on how to resolve COLLISION, a &profile-collistion-error."
|
||||
(define (top-most-entry entry)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue