ui: Recognize the same size units as Coreutils.
* guix/ui.scm (size->number): Add a bunch of large units. Recognize one-letter unit names. Change "KB" to "kB". * tests/ui.scm ("size->number, 1T"): New test. * doc/guix.texi (Invoking guix gc): Add cross-reference to "Block size" in the Coreutils manual. (Invoking guix system): Likewise.
This commit is contained in:
parent
882383a9aa
commit
4a44d7bbc6
|
@ -1142,7 +1142,8 @@ specified.
|
||||||
|
|
||||||
When @var{min} is given, stop once @var{min} bytes have been collected.
|
When @var{min} is given, stop once @var{min} bytes have been collected.
|
||||||
@var{min} may be a number of bytes, or it may include a unit as a
|
@var{min} may be a number of bytes, or it may include a unit as a
|
||||||
suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes.
|
suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes
|
||||||
|
(@pxref{Block size, size specifications,, coreutils, GNU Coreutils}).
|
||||||
|
|
||||||
When @var{min} is omitted, collect all the garbage.
|
When @var{min} is omitted, collect all the garbage.
|
||||||
|
|
||||||
|
@ -3822,8 +3823,8 @@ This works as per @command{guix build} (@pxref{Invoking guix build}).
|
||||||
@item --image-size=@var{size}
|
@item --image-size=@var{size}
|
||||||
For the @code{vm-image} and @code{disk-image} actions, create an image
|
For the @code{vm-image} and @code{disk-image} actions, create an image
|
||||||
of the given @var{size}. @var{size} may be a number of bytes, or it may
|
of the given @var{size}. @var{size} may be a number of bytes, or it may
|
||||||
include a unit as a suffix, such as @code{MiB} for mebibytes and
|
include a unit as a suffix (@pxref{Block size, size specifications,,
|
||||||
@code{GB} for gigabytes.
|
coreutils, GNU Coreutils}).
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Note that all the actions above, except @code{build} and @code{init},
|
Note that all the actions above, except @code{build} and @code{init},
|
||||||
|
|
18
guix/ui.scm
18
guix/ui.scm
|
@ -189,14 +189,22 @@ interpreted."
|
||||||
((compose inexact->exact round)
|
((compose inexact->exact round)
|
||||||
(* num
|
(* num
|
||||||
(match unit
|
(match unit
|
||||||
("KiB" (expt 2 10))
|
((or "KiB" "K" "k") (expt 2 10))
|
||||||
("MiB" (expt 2 20))
|
((or "MiB" "M") (expt 2 20))
|
||||||
("GiB" (expt 2 30))
|
((or "GiB" "G") (expt 2 30))
|
||||||
("TiB" (expt 2 40))
|
((or "TiB" "T") (expt 2 40))
|
||||||
("KB" (expt 10 3))
|
((or "PiB" "P") (expt 2 50))
|
||||||
|
((or "EiB" "E") (expt 2 60))
|
||||||
|
((or "ZiB" "Z") (expt 2 70))
|
||||||
|
((or "YiB" "Y") (expt 2 80))
|
||||||
|
("kB" (expt 10 3))
|
||||||
("MB" (expt 10 6))
|
("MB" (expt 10 6))
|
||||||
("GB" (expt 10 9))
|
("GB" (expt 10 9))
|
||||||
("TB" (expt 10 12))
|
("TB" (expt 10 12))
|
||||||
|
("PB" (expt 10 15))
|
||||||
|
("EB" (expt 10 18))
|
||||||
|
("ZB" (expt 10 21))
|
||||||
|
("YB" (expt 10 24))
|
||||||
("" 1)
|
("" 1)
|
||||||
(_
|
(_
|
||||||
(leave (_ "unknown unit: ~a~%") unit)))))))
|
(leave (_ "unknown unit: ~a~%") unit)))))))
|
||||||
|
|
|
@ -189,6 +189,10 @@ Second line" 24))
|
||||||
(inexact->exact (round (* 1.2 (expt 2 30))))
|
(inexact->exact (round (* 1.2 (expt 2 30))))
|
||||||
(size->number "1.2GiB"))
|
(size->number "1.2GiB"))
|
||||||
|
|
||||||
|
(test-equal "size->number, 1T"
|
||||||
|
(expt 2 40)
|
||||||
|
(size->number "1T"))
|
||||||
|
|
||||||
(test-assert "size->number, invalid unit"
|
(test-assert "size->number, invalid unit"
|
||||||
(catch 'quit
|
(catch 'quit
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
|
Loading…
Reference in New Issue